Variabili implicite per package applicazioni ML

Negli script Terraform all'interno dei package delle applicazioni ML, è possibile fare affidamento su variabili implicite.

Ad esempio, quando è necessario conoscere l'identificativo dell'area, è possibile fare riferimento a una variabile implicita in questo modo:
${var.<region_identifier>}

Variabili indipendenti dall'implementazione

Queste variabili vengono sempre definite indipendentemente dall'implementazione del pacchetto.
Variabili inserite nei package di applicazioni ML
Nome Tipo o schema descrizione; Esempio
region_short_code String Codice dell'aeroporto per l'area. IAD, PHX
region_identifier String Identificativo dell'area corrente del servizio MlApps. us-ashburn-1
realm String Il realm corrente del servizio MlApps. OC1, OC2
                                            app
                                        
JSON Object
{
"id": string,
"name": string,
"compartment_id": string,
}
app.id Stringa OCID dell'applicazione ML.
app.name Stringa Nome dell'applicazione ML.
app.compartment_id Stringa OCID compartimento dell'applicazione ML.
                                            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 Stringa OCID dell'implementazione dell'applicazione ML.
app_impl.name Stringa Nome dell'implementazione dell'applicazione ML.
app_impl.compartment_id Stringa OCID compartimento dell'implementazione dell'applicazione ML.
app_impl.package_arguments Mappa Mappa degli argomenti del package. { "bucket_name": "my_bucket" }
app_impl.application_components.oci_datascience_job Mappa Valore del componente applicazione '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 Stringa OCID dell'istanza dell'applicazione ML.
app_instance.displayName Stringa DisplayName dell'istanza dell'applicazione ML.
app_instance.compartment_id Stringa OCID compartimento dell'istanza dell'applicazione ML.
app_instance.instance_components.oci_objectstorage_bucket Mappa
  • Valore del componente istanza 'oci_objectstorage_bucket'.
  • Disponibile SOLO dopo la creazione dei componenti dell'istanza durante la creazione, l'aggiornamento o l'aggiornamento dell'istanza.
  • Questa variabile implicita può essere utilizzata, ad esempio, dai trigger che devono utilizzare, ad esempio, l'OCID di distribuzione del modello.
"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 Mappa I valori di configurazione per lo schema.
{
 "key1": "value1"
}
current_model_id Mappa

ID modello corrente per un caso d'uso di previsione particolare.

La variabile contiene una mappa in cui:

  • il nome del caso d'uso è la chiave (nome visualizzato della distribuzione del modello)
  • L'ID modello attualmente distribuito è il valore.

In genere, la pipeline di formazione crea un nuovo modello e lo distribuisce. La definizione della terraforma deve conoscere il nuovo modello e fare riferimento al modello attualmente implementato. In caso contrario, il modello attualmente distribuito verrà sostituito dal valore utilizzato nella definizione Terraform della distribuzione del modello.

{
 "<your use case/MD name>": "ocid1.datasciencemodeldeployment...."
}
Riferimento modello nella definizione Terraform di distribuzione modello
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
Nota: l'espressione è molto difensiva e non deve essere influenzata dalla versione o dall'implementazione Terraform utilizzata.

Riferimenti componente

I componenti dell'applicazione e dell'istanza sono organizzati in modo nidificato. Questa struttura gerarchica consente un facile riferimento e gestione di diversi componenti dell'applicazione e può quindi essere utilizzata dai componenti dell'istanza.

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"
           }
       }
     }
   }
Questa struttura di esempio precedente è definita in Terraform e può quindi essere utilizzata come riferimento nei file trigger nel modo seguente:
${app_impl.application_components.oci_datascience_pipeline.test_pipeline.id}"