Implizite Variablen für ML-Anwendungspakete

In den Terraform-Skripten in den ML-Anwendungspackages können Sie sich auf implizite Variablen verlassen.

Beispiel: Wenn Sie die ID der Region kennen müssen, können Sie auf diese Weise auf eine implizite Variable verweisen:
${var.<region_identifier>}

Implementierungsunabhängige Variablen

Diese Variablen werden immer unabhängig von der Paketimplementierung definiert.
In ML-Anwendungspackages injizierte Variablen
Name Typ oder Schema Beschreibung Beispiel
region_short_code String Der Flughafencode für die Region. IAD, PHX
region_identifier String Die ID der aktuellen Region des MlApps-Service. us-ashburn-1
realm String Die aktuelle Realm des MlApps-Service. OC1, OC2
                                            app
                                        
JSON Object
{
"id": string,
"name": string,
"compartment_id": string,
}
app.id Zeichenfolge Die OCID der ML-Anwendung.
app.name Zeichenfolge Der Name der ML-Anwendung.
app.compartment_id Zeichenfolge Die Compartment-OCID der ML-Anwendung.
                                            app_impl
                                        

                                            
                                                Type
                                            : Json Object

                                                Schema
                                            :
"app_impl":
 type = object(
  {
   id = string,
   name = string,
   compartment_id = string,
   package_arguments = map(string),
   application_components = map(map(map(string)))
  }
 )
"app_impl":
 {
  "id": "ocid1.impl.oc1.aaaa..",
  "name": "My_Implementation",
  "compartment_id": "ocid1.compartment.oc1.aaaa..",
  "application_components":
   {
    "oci_datascience_job":
     {
      "my_first_job": "ocid1.job.oc1.aaaa.."
     }
     "oci_datascience_pipeline":
    {
     "my_first_pipeline": "ocid1.pl.oc1.aaaa..""
    }
   }
  "package_arguments":
   {
    "bucket_name": "my_bucket"
   }
 } 
app_impl.id Zeichenfolge OCID der ML-Anwendungsimplementierung.
app_impl.name Zeichenfolge Name der ML-Anwendungsimplementierung.
app_impl.compartment_id Zeichenfolge Die Compartment-OCID der ML-Anwendungsimplementierung.
app_impl.package_arguments Zuordnung Die Zuordnung von Packageargumenten. { "bucket_name": "my_bucket" }
app_impl.application_components.oci_datascience_job Zuordnung Der Wert der Anwendungskomponente "oci_datascience_job".

{

"first_job": "ocid1.job.oc1.aaaa",

"second_job": "ocid1.job.oc1.bbbb"

}

                                            app_instance
                                        

                                            
                                                Type
                                            : Json Object
                                                Schema
                                            :
"app_instance":
  type = object(
  {
   id = string
   view_id = string
   displayName = string
   compartment_id = string
   instance_components = map(string)
   configuration = map(string)
  }
 )
"app_instance":
{
"id": "ocid1.mlapplicationinstance.oc1.aaaa..",
"view_id" : "ocid1.mlapplicationinstanceview.oc1.aaaa.."
"displayName": "Test_Instance",
"compartment_id": "ocid1.compartment.oc1.aaaa..",
"instance_components":
 {
 "oci_objectstorage_bucket":
 {
  "my_first_bucket": "ocid1.bucket.oc1.aaaa..">
 } "oci_datascience_model":
 {  "my_first_model": "ocid1.model.oc1.aaaa..""
 }
"configuration":
 { "key1": "value1"
 }
}
app_instance.id Zeichenfolge Die OCID der ML-Anwendungsinstanz.
app_instance.displayName Zeichenfolge DisplayName der ML-Anwendungsinstanz.
app_instance.compartment_id Zeichenfolge Die Compartment-OCID der ML-Anwendungsinstanz.
app_instance.instance_components.oci_objectstorage_bucket Zuordnung
  • Der Wert der Instanzkomponente "oci_objectstorage_bucket".
  • NUR verfügbar, nachdem Instanzkomponenten beim Erstellen, Aktualisieren oder Upgrade der Instanz erstellt wurden.
  • Diese implizite Variable kann beispielsweise von Triggern verwendet werden, die beispielsweise die Modell-Deployment-OCID verwenden müssen.
"my_bucket": # this is TF resource identifier for the bucket
{
  "id": "ocid1.bucket.oc1.aaaa", #bucket OCID
  "name": "test_bucket" #bucket name
}
app_instance.configuration Zuordnung Die Konfigurationswerte für das Schema.
{
 "key1": "value1"
}
current_model_id Zuordnung

Aktuelle Modell-ID für bestimmten Anwendungsfall für Vorhersage.

Die Variable enthält eine Map, wobei:

  • Anwendungsfallname ist der Schlüssel (Anzeigename des Modell-Deployments)
  • Die aktuell bereitgestellte Modell-ID ist der Wert.

In der Regel erstellt die Trainingspipeline ein neues Modell und stellt es bereit. Die Terraform-Definition muss das neue Modell kennen und sich auf das aktuell eingesetzte Modell beziehen. Andernfalls wird das aktuell bereitgestellte Modell durch den Wert überschrieben, der in der Terraform-Definition des Modell-Deployments verwendet wird.

{
 "<your use case/MD name>": "ocid1.datasciencemodeldeployment...."
}
Modellreferenz in Modell-Deployment-Terraform-Definition
locals {
 # this assumes that you defined a default model as an application component named "default_model"
 default_model_id = var.app_impl.application_components.oci_datascience_model.default_model.id
}
model_id = var.current_model_id != null ? (contains(keys(var.current_model_id),"<use case>" ?
 (var.current_model_id["<use case>"]!= null ? var.current_model_id["<use case>"]
  :local.default_model_id) : local.default_model_id) :local.default_model_id
Hinweis: Der Ausdruck ist sehr defensiv, sodass er nicht von der verwendeten Terraform-Version oder -Implementierung betroffen ist.

Komponentenreferenzen

Die Anwendungskomponenten und Instanzkomponenten sind verschachtelt angeordnet. Diese hierarchische Struktur ermöglicht eine einfache Referenzierung und Verwaltung verschiedener Anwendungskomponenten und kann dann von Instanzkomponenten verwendet werden.

componentName :{  type: String,  minLength: 1,  maxLength: 255,}
"app_impl":
  {
   "application_components":
     {
      "oci_datascience_pipeline":
       {
         "test_pipeline":
           {
           "id" = "ocid1.oci_datascience_pipeline.oc1..aaaaaaaarvllavmi4anvsrpwe3eqyxx3vkzrnfmtzynunkbszrr7dnzfq3qa"
           "name" = "PipelineTriggers"
           }
       }
     }
   }
Diese vorherige Beispielstruktur wird in Terraform definiert und kann dann wie folgt in Triggerdateien referenziert werden:
${app_impl.application_components.oci_datascience_pipeline.test_pipeline.id}"