Skip to content

アプリケーションソースの管理

アプリケーションソースには、アプリケーションを構築できるファイル、依存関係、および環境が含まれます。 レジストリで、アプリケーションのソースタイルを選択して、アプリケーションを構築できるすべてのソースを表示します。

アプリケーションソースの追加

新しいアプリケーションソースを追加するには、レジストリ > アプリケーションのソースに移動し、+ 新しいアプリケーションソースを追加をクリックするか、ドロップダウンからオプションを選択します。

新しいアプリケーションソースが、直ちにレジストリに追加されます。

アプリケーションソースの設定

アプリケーションソースを作成または選択後、その基本環境を選択し、ソースにファイルをアップロードして、ランタイムパラメーターを作成できます。

アプリケーションソースのこれらのコンポーネントのいずれかを編集する場合、ソースの新しいバージョンを作成します。 バージョンドロップダウンから、ソースの任意のバージョンを選択できます。

アプリケーションのバージョンに加えられた変更の履歴を表示するには、左側の列のリストからアプリケーションのバージョンを選択します。 次に、履歴アイコン の横にある右側の列を展開して、変更履歴を表示します。

環境

アプリケーションは環境(Dockerコンテナ)内で実行されます。 環境には、アプリケーションで使用されるパッケージ、言語、およびシステムライブラリが含まれます。 環境ヘッダーの下にあるドロップダウンから、DataRobotが提供するアプリケーションソースの環境を選択します。 DataRobotは[Experimental] Python 3.9 Streamlitという定義済みの基本環境を提供しています。

ファイル

ファイルセクションでは、アプリケーションソースを構成するファイルをまとめることができます。 ボックスにファイルをドラッグするか、このセクションのオプションを使用して、カスタムジョブの構築に必要なファイルを作成またはアップロードします。

オプション 説明
ソース/アップロードから選択 既存のカスタムジョブファイル(run.shmetadata.yaml、など)をローカルファイルまたはローカルフォルダーとしてアップロードします。
作成 空のファイルまたはテンプレートを含んだファイルとして新しいファイルを作成し、カスタムジョブに保存します。
  • metadata.yamlを作成:ランタイムパラメーターファイルの基本的で編集可能な例を作成します。
  • README.mdを作成:基本的で編集可能なREADMEファイルを作成します。
  • start-app.shを作成:エントリーポイントファイルの基本的で編集可能な例を作成します。
  • demo-streamlit.pyを作成:基本的で編集可能なPythonファイルを作成します。
  • サンプルジョブを作成:すべてのテンプレートファイルを結合して、基本的で編集可能なアプリケーションを作成します。 簡単にランタイムパラメーターを設定し、このサンプルアプリケーションを実行できます。
  • 空白ファイルを作成:空のファイルを作成します。 名称未設定の横にある編集アイコン()をクリックしてファイル名と拡張子を入力し、カスタムコンテンツを追加します。 次のステップでは、カスタム名とコンテンツを使用して、このように作成されたファイルをエントリーポイントとして識別できます。 新しいファイルを設定したら、保存をクリックします。

空白のテキストファイル作成を選択する場合、ファイルに情報を入力し、完全なパス(そのファイルに属するフォルダおよびファイル拡張子を含む)を使用して名前を付け、保存をクリックします。

アプリスクリプトの構築

アプリケーションソースにrequirements.txtファイルを提供すると、アプリ構築時にPythonの依存関係がインストールされます。 ただし、Python以外の依存関係をインストールすることもできます。 これらの依存関係をインストールするために、アプリケーションソースにbuild-app.shスクリプトを含めることができます。このスクリプトは、初めてアプリケーションを構築するときにDataRobotによって呼び出されます。 build-app.shスクリプトはnpm installまたはyarn buildを実行できるため、アプリケーションはJavaScriptベースのアプリケーションでの依存関係のインストールに対応できます。 このスクリプトでアプリケーションを構築する際、構築プロセス中にエラーが発生した場合は失敗するように、スクリプトにset -eを含める必要があります。

以下の例は、カスタムノードアプリケーション用のサンプルbuild-app.shスクリプトの概要を示しています。

#!/usr/bin/env sh

# add set -e so if the npm install fails, the build will be marked as failed
set -e

cd client

echo "Installing React dependencies from package.json..."
npm install

echo "Building React app..."
yarn run build && rm ./build/index.html 

リソース

プレビュー

アプリケーションのリソースバンドルは、デフォルトではオフになっています。 この機能を有効にする方法については、DataRobotの担当者または管理者にお問い合わせください。

機能フラグ:リソースのバンドルを有効にする

アプリケーションソースを作成した後、アプリケーションが消費するリソースを設定して、本番環境での潜在的な環境エラーを最小限に抑えることができます。 DataRobotでは、リソース制限とレプリカ数をカスタマイズできます。 リソースバンドルを編集するには:

  1. アプリケーションソースを選択します。 リソースセクションで、編集 をクリックします。
  2. リソースを更新ダイアログボックスで、次の設定を行います。

    設定 説明
    バンドル ドロップダウンからリソースバンドルを選択し、アプリケーションに割り当てることができるメモリーとCPUの最大量を決定します。
    レプリカ アプリケーションの実行時にワークロードのバランスを取るために、並行して実行するレプリカの数を設定します。 デフォルト値は 1 で、最大値は4です。
    セッションアフィニティを有効にする 同じレプリカにリクエストを送信します。 たとえば、チャット履歴をドキュメントに保存し、それを参照できるアプリのような、ローカルファイルシステムやメモリーにデータを保存するステートフルなアプリでは、これを有効にする必要があります。 複数のレプリカが使用可能な場合、file_uploaderなどの一部のStreamlitコンポーネントは、この設定を有効にしないとエラーをスローします。
    ルートパスでアプリを内部実行 アプリを/apps/{ID}の代わりに/で実行できるようにします。 アプリが(GunicornやStreamlitを使用するなどして)自動的にパス設定を処理する場合、この設定は必要ありません。 すべてのルートを/apps/{ID}/で動作させるソリューションがないWebフレームワーク(R-Shinyなど)には便利です。
  3. アプリケーションソースのリソース設定が完了したら、保存をクリックします。

ランタイムパラメーター

ランタイムパラメーターセクションで、実行時にアプリケーションコードに異なる値を指定するランタイムパラメーターを作成します。これにより、アプリケーションの再利用が容易になります。 metadata.yamlファイルでランタイムパラメーターを定義している場合、それらもここで管理できます。 ランタイムパラメーターは、環境変数としてコンテナに挿入されます(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)は変更されません。単一フィールドのシークレットにおけるフラット変数のみが、パラメーター名そのものを使用します。

+ ランタイムパラメーターを追加をクリックし、名前タイプ、および必要に応じて説明を入力して、新しいランタイムパラメーターを定義します。

または、metadata.yamlファイルでランタイムパラメーターを定義します。 このファイルのテンプレートは、ファイル > 作成ドロップダウンから入手できます。

既存のランタイムパラメーターの場合、 編集をクリックして、パラメーター値の編集、パラメーターの削除、またはパラメーター値のリセットを行います。

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

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

Codespaceでのアプリケーションソースの変更

Codespaceでアプリケーションソースを開いて管理し、ソースのファイルを直接編集したり、新しいファイルをアップロードしたりできます。

Codespaceでアプリケーションソースを開くには、レジストリ > アプリケーションのソースページでソースに移動します。 ソースを選択してその内容を表示し、Codespaceで開くをクリックします。

アプリケーションソースがcodespaceで開き、既存のファイルを直接編集したり、新しいファイルをアップロードしたり、 codespaceの機能を使用したりできます。

Codespaceでアプリケーションソースの変更作業が終了したら、保存をクリックします。 アプリケーションソースバージョンは、変更で更新されます。 変更するアプリケーションソースのバージョンを以前にデプロイしている場合、保存すると新しいソースバージョンが作成されます。 それ以外の場合、同じソースバージョンを維持したまま保存します。 保存したくない場合は、キャンセルをクリックします。 それ以外の場合は、続行をクリックします。

Codespaceを保存すると、アプリケーションのソースページに戻り、新しいソースバージョンがバージョンドロップダウンに表示されます。

アプリケーションソースの置換

アプリケーションを使用した後、そのソースを置き換えることができます。 アプリケーションソースを置換すると、元のアプリケーションから以下のものが引き継がれます。

  • アプリケーションコード
  • 基盤となる実行環境
  • レプリカの数
  • ランタイムパラメーターとシークレットのコピー
  • コンテナのサイズ(small、medium、large)

アプリケーションソースを置き換えるには、アプリケーションページでアプリケーションを見つけ、アクションメニュー を開き、ソースの置換をクリックします。

モーダルで、ドロップダウンからアプリケーションソースを選択して、アプリケーションが現在使用しているものを置き換えます。 各ソースはそのソースバージョンを示します。 検索バーを使用して、アプリケーションソースを指定できます。 置換ソースを選択後、確認をクリックします。

ソースが置換される際、アプリケーションにアクセスできるすべてのユーザーは、置換中に開くボタンが無効になっていても、引き続きアプリケーションを使用できます。