Skip to content

ランタイムパラメーターの定義

環境変数を定義し、それらをランタイムパラメーターとして組み込むことで、実行時にアプリケーションコードに異なる値を指定できます。これにより、アプリケーションの再利用が容易になります。 コードまたはUIからランタイムパラメーターを定義します。

  • コード:アプリケーションのソースにmetadata.yamlファイルを指定します。 アプリケーションワークショップでアプリケーションのソースを作成または編集する際に、このファイルを定義します。あるいは、アプリケーションのファイル > 作成ドロップダウンから、アプリケーションワークショップで利用可能なテンプレートを使用します。 YAMLの構造はこのページで定義されています。

  • UIアプリケーションワークショップで、アプリケーションソースのランタイムパラメーターセクションにランタイムパラメーターを定義します。 詳細については、アプリケーションソースの管理のドキュメントを参照してください。

ランタイムパラメーターは、環境変数としてコンテナに挿入されます(os.getenvを通じてアクセス可能です)。 アプリケーションワークショップのUIを通じて作成されたパラメーターは、新しいコードバージョンをアップロードする際にも保持およびマージされ、シームレスな開発フローが確保されます。

ランタイムパラメーターに関する注意事項

システムでは、動的設定で管理される予約済みパターンのブロックリスト(例:DRUM_*MLOPS_*KUBERNETES_*)が使用されます。 一致判定では、*ワイルドカードがサポートされています(完全な正規表現構文はサポートされていません)。 予約名は完全にはブロックされません。ランタイムパラメーターで予約名が使用されている場合、UIに警告が表示されます。 変数がどのように公開されるかは、コンテキストによって異なります。

  • カスタムモデル:システムの競合を防ぐために、未加工の(プレフィックスが付かない)環境変数としてではなく、 プレフィックス付き(MLOPS_RUNTIME_PARAM_*)およびJSON形式のみ。
  • カスタムアプリ:プレフィックスは付きますが、値はJSONペイロードに格納されません(資格情報を除く)。
  • カスタムジョブ:プレフィックスもJSONペイロードもありません(資格情報タイプを除く)。この変数は、未加工の環境変数として使用できます。

資格情報タイプのランタイムパラメーターの場合、システムはJSONフィールドを単一の文字列ではなく、個別の環境変数として自動的に展開します。 たとえば、次のようなJSON構造を持つMAIN_AWS_CREDENTIALという名前の資格情報があります。

{"awsAccessKeyId": "<your-key-id>", "awsSecretAccessKey": "<your-access-key>"} 

パラメーター名とJSONキーを組み合わせ、大文字にして、以下の環境変数に展開されます。

MAIN_AWS_CREDENTIAL_AWS_ACCESS_KEY_ID="<your-key-id>"
MAIN_AWS_CREDENTIAL_AWS_SECRET_ACCESS_KEY="<your-access-key>" 

単一フィールドの資格情報タイプ(たとえば、api_tokenbearer、または gcp)の場合、挿入される環境変数には、パラメーター名に資格情報のフィールド名を組み合わせた形式(たとえば、MY_CRED_API_TOKEN)ではなく、ランタイムパラメーター名そのもの(MY_CRED)が使用されます。 複数フィールド JSONエンコードされたランタイムパラメーター変数(例:MLOPS_RUNTIME_PARAMETERS_OPEN_AI_API)は変更されません。単一フィールドのシークレットにおけるフラット変数のみが、パラメーター名そのものを使用します。

コンテナ内のランタイムパラメーターへのアクセス

コンテナ内のランタイムパラメーターにプログラムでアクセスするには、SDK APIリファレンスに記載されているように、DataRobotAppFrameworkBaseSettingsを使用します。

ランタイムパラメーターの定義

ランタイムパラメーターを定義するには、以下のruntimeParameterDefinitionsmetadata.yamlに追加できます。

キー 説明
fieldName ランタイムパラメーターの名前を定義します。
type ランタイムパラメーターに含まれるデータ型(stringbooleannumericcredentialdeploymentmodelPackage)を定義します。
defaultValue (オプション)ランタイムパラメーターのデフォルト文字列値(credentialタイプはデフォルト値をサポートしません) defaultValueを指定せずにランタイムパラメーターを定義した場合、デフォルト値はNoneです。
minValue (オプション)numericランタイムパラメーターには、ランタイムパラメーターで使用可能な最小数値を設定します。
maxValue (オプション)numericランタイムパラメーターには、ランタイムパラメーターで使用可能な最大数値を設定します。
credentialType (オプション)credentialランタイムパラメーターの場合、パラメーターに含める資格情報のタイプを設定します。
allowEmpty (オプション)ランタイムパラメーターに空のフィールドポリシーを設定します。
  • True:(デフォルト)空のランタイムパラメーターを許可します。
  • False:デプロイ前にランタイムパラメーターの値を指定するよう徹底します。
description (オプション)ランタイムパラメーターの目的または内容の説明を入力します。
Example: metadata.yaml
name: runtime-parameter-example

runtimeParameterDefinitions:
- fieldName: my_first_runtime_parameter
  type: string
  description: My first runtime parameter.

- fieldName: runtime_parameter_with_default_value
  type: string
  defaultValue: Default
  description: A string-type runtime parameter with a default value.

- fieldName: runtime_parameter_boolean
  type: boolean
  defaultValue: true
  description: A boolean-type runtime parameter with a default value of true.

- fieldName: runtime_parameter_numeric
  type: numeric
  defaultValue: 0
  minValue: -100
  maxValue: 100
  description: A boolean-type runtime parameter with a default value of 0, a minimum value of -100, and a maximum value of 100.

- fieldName: runtime_parameter_for_credentials
  type: credential
  allowEmpty: false
  description: A runtime parameter containing a dictionary of credentials. 

credentialランタイムパラメータータイプは、DataRobot REST APIで使用可能な任意のcredentialType値をサポートします。 以下の例に示すように、含まれる資格情報はcredentialTypeに依存します。

備考

サポートされている資格情報タイプの詳細については、 資格情報のAPIリファレンスドキュメントを参照してください。

資格情報タイプ
basic
basic:
    credentialType: basic
    description: string
    name: string
    password: string
    user: string
        
azure
azure:
    credentialType: azure
    description: string
    name: string
    azureConnectionString: string
        
gcp
gcp:
    credentialType: gcp
    description: string
    name: string
    gcpKey: string
        
s3
s3:
  credentialType: s3
    description: string
    name: string
    awsAccessKeyId: string
    awsSecretAccessKey: string
    awsSessionToken: string
        
api_token
api_token:
    credentialType: api_token
    apiToken: string
    name: string