MLアプリケーション・パッケージの暗黙的変数

ML Applicationsパッケージ内のTerraformスクリプトでは、暗黙的な変数に依存できます。

たとえば、リージョンの識別子を知る必要がある場合、次のように暗黙的な変数を参照できます。
${var.<region_identifier>}

実装に依存しない変数

これらの変数は、パッケージの実装に関係なく常に定義されます。
MLアプリケーション・パッケージに注入される変数
名前 タイプまたはスキーマ 説明 Sample
region_short_code String リージョンの空港コード。 IAD, PHX
region_identifier String MlAppsサービスの現在のリージョンの識別子。 us-ashburn-1
realm String MlAppsサービスの現在のレルム。 OC1, OC2
app
JSON Object
{
"id": string,
"name": string,
"compartment_id": string,
}
app.id 文字列 MLアプリケーションのOCID。
app.name 文字列 MLアプリケーションの名前。
アプリケーションcompartment_id 文字列 MLアプリケーションのコンパートメントOCID。
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 文字列 MLアプリケーション実装のOCID。
app_impl.name 文字列 MLアプリケーション実装の名前。
app_impl.compartment_id 文字列 MLアプリケーション実装のコンパートメントOCID。
app_impl.package_arguments マップ パッケージ引数のマップ。 { "bucket_name": "my_bucket"}
app_impl.application_components.oci_datascience_job マップ '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 文字列 MLアプリケーション・インスタンスのOCID。
app_instance.displayName 文字列 MLアプリケーション・インスタンスのDisplayName
app_instance.compartment_id 文字列 MLアプリケーション・インスタンスのコンパートメントOCID。
app_instance.instance_components.oci_objectstorage_bucket マップ
  • 'oci_objectstorage_bucket'インスタンス・コンポーネントの値。
  • インスタンスの作成、更新またはアップグレード中にインスタンス・コンポーネントが作成された後にのみ使用できます。
  • この暗黙的な変数は、たとえば、モデル・デプロイメントOCIDなど、使用する必要があるトリガーで使用できます。
"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 マップ スキーマの構成値。
{
 "key1": "value1"
}
current_model_id マップ

特定の予測ユース・ケースの現在のモデルID。

変数には、次のマップが含まれます。

  • ユースケース名はキー(モデル・デプロイメントの表示名)です
  • 現在デプロイされているモデルIDが値です。

通常、トレーニング・パイプラインは新しいモデルを構築してデプロイします。terraform定義は、新しいモデルについて認識し、現在デプロイされているモデルを参照する必要があります。それ以外の場合、現在デプロイされているモデルは、モデル・デプロイメントのTerraform定義で使用されている値によってオーバーライドされます。

{
 "<your use case/MD name>": "ocid1.datasciencemodeldeployment...."
}
モデル・デプロイメントTerraform定義のモデル・リファレンス
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
ノート:式は、使用されるTerraformバージョンまたは実装の影響を受けないように、非常に防御的です。

コンポーネント参照

アプリケーション・コンポーネントおよびインスタンス・コンポーネントは、ネストされた方法で編成されます。この階層構造により、様々なアプリケーション・コンポーネントを簡単に参照および管理でき、インスタンス・コンポーネントで使用できます。

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"
           }
       }
     }
   }
この以前のサンプル構造はTerraformで定義されており、トリガー・ファイルで次の方法で参照できます。
${app_impl.application_components.oci_datascience_pipeline.test_pipeline.id}"