Variáveis Implícitas para Pacotes de Aplicativos ML

Nos scripts do Terraform dentro dos pacotes de Aplicativos ML, você pode confiar em variáveis implícitas.

Por exemplo, quando você precisar saber o identificador da região, poderá consultar uma variável implícita desta forma:
${var.<region_identifier>}

Variáveis Independentes de Implementação

Essas variáveis são sempre definidas independentemente da implementação do pacote.
Variáveis Injetadas em Pacotes de Aplicativos ML
Nome Tipo ou Esquema Descrição Amostra
region_short_code String O código do aeroporto para a região. IAD, PHX
region_identifier String O identificador da região atual do serviço MlApps. us-ashburn-1
realm String O realm atual do serviço MlApps. OC1, OC2
                                            app
                                        
JSON Object
{
"id": string,
"name": string,
"compartment_id": string,
}
app.id String O OCID do Aplicativo ML.
app.name String O nome do Aplicativo ML.
aplicativo.compartment_id String O OCID do compartimento do Aplicativo 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 String O OCID da Implementação do Aplicativo ML.
app_impl.name String O nome da Implementação do Aplicativo ML.
app_impl.compartment_id String O OCID do compartimento da Implementação do Aplicativo ML.
app_impl.package_arguments Mapa O mapa de argumentos do pacote. { "bucket_name": "my_bucket" }
app_impl.application_components.oci_datascience_job Mapa O valor do componente do aplicativo '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 String O OCID da Instância do Aplicativo ML.
app_instance.displayName String DisplayName da Instância do Aplicativo ML.
app_instance.compartment_id String O OCID do compartimento da Instância do Aplicativo ML.
app_instance.instance_components.oci_objectstorage_bucket Mapa
  • O valor do componente de instância 'oci_objectstorage_bucket'.
  • Disponível SOMENTE após a criação dos componentes da instância durante a criação, atualização ou upgrade da instância.
  • Essa variável implícita pode ser usada, por exemplo, por triggers que precisam usar, por exemplo, o OCID de Implantação de Modelo.
"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 Mapa Os valores de configuração do esquema.
{
 "key1": "value1"
}
current_model_id Mapa

ID do modelo atual para um caso de uso de previsão específico.

A variável contém um mapa onde:

  • o nome do caso de uso é a chave (nome para exibição da implantação de modelo)
  • o ID do modelo implantado atualmente é o valor.

Normalmente, o pipeline de treinamento cria um novo modelo e o implanta. A definição de terraform precisa saber sobre o novo modelo e se referir ao modelo atualmente implantado. Caso contrário, o modelo implantado no momento seria substituído pelo valor usado na definição do Terraform da Implantação do Modelo.

{
 "<your use case/MD name>": "ocid1.datasciencemodeldeployment...."
}
Referência de Modelo na Definição do Terraform de Implantação de Modelo
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
Observação: A expressão é muito defensiva para não ser afetada pela versão ou implementação do Terraform usada.

Referências do Componente

Os componentes do aplicativo e da instância são organizados de maneira aninhada. Essa estrutura hierárquica permite fácil referência e gerenciamento de diferentes componentes de aplicativos e, em seguida, pode ser usada por componentes de instância.

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"
           }
       }
     }
   }
Essa estrutura de amostra anterior é definida no Terraform e pode ser referenciada nos arquivos de trigger da seguinte maneira:
${app_impl.application_components.oci_datascience_pipeline.test_pipeline.id}"