Skip to content

宣言型API

DataRobotは、モデル、デプロイ、アプリケーションなどのDataRobotエンティティをプログラムでプロビジョニングするために使用されるTerraformネイティブな宣言型APIを提供しています。 宣言型APIを使用すると、以下のことができます。

  1. インフラストラクチャの望ましい最終状態を指定することで、管理を簡単にし、クラウドプロバイダー間での適応性を高めることができます。
  2. プロビジョニングを自動化することで、環境間の整合性を確保し、実行順序に関する懸念を解消できます。
  3. バージョン管理を簡単にすることができます。
  4. アプリケーションテンプレートを使用することで、ワークフローの重複を減らし、一貫性を確保できます。
  5. DevOpsやCI/CDと連携することで、予測可能かつ一貫性のあるインフラストラクチャを確保し、デプロイのリスクを軽減できます。

DataRobotは、DataRobotリソースを反復可能でスケーラブルな方法でエンドツーエンドでプロビジョニングするためのコードファーストの方法として、宣言型APIの使用を推奨しています。

宣言型APIサービス

DataRobotでは、宣言型APIを使用するためのサービスとしてPulumiとTerraformの2つがあります。 お客様のエンジニアリングニーズに合ったサービスを使用することをお勧めします。 PulumiはPythonをベースにし、Terraformはyamlをベースにしています。 アプリケーションテンプレートは、デフォルトでPulumi用に設定されています。

宣言型APIのニーズに合わせてPulumiを使用する方法については、 Pulumiレジストリにアクセスし、 インストールガイドを参照してください。

Terraformの使用方法については、 Terraformレジストリにアクセスし、 インストールガイドを参照してください。

宣言型APIを使用して、Pulumi CLIでDataRobotのリソースをプロビジョニングする方法の例を以下に示します。

import pulumi_datarobot as datarobot
import pulumi
import os

for var in [
    "OPENAI_API_KEY",
    "OPENAI_API_BASE",
    "OPENAI_API_DEPLOYMENT_ID",
    "OPENAI_API_VERSION",
]:
    assert var in os.environ

pe = datarobot.PredictionEnvironment(
    "pulumi_serverless_env", platform="datarobotServerless"
)

credential = datarobot.ApiTokenCredential(
    "pulumi_credential", api_token=os.environ["OPENAI_API_KEY"]
)

cm = datarobot.CustomModel(
    "pulumi_custom_model",
    base_environment_id="65f9b27eab986d30d4c64268",  # GenAI 3.11 w/ moderations
    folder_path="model/",
    runtime_parameter_values=[
        {"key": "OPENAI_API_KEY", "type": "credential", "value": credential.id},
        {
            "key": "OPENAI_API_BASE",
            "type": "string",
            "value": os.environ["OPENAI_API_BASE"],
        },
        {
            "key": "OPENAI_API_DEPLOYMENT_ID",
            "type": "string",
            "value": os.environ["OPENAI_API_DEPLOYMENT_ID"],
        },
        {
            "key": "OPENAI_API_VERSION",
            "type": "string",
            "value": os.environ["OPENAI_API_VERSION"],
        },
    ],
    target_name="resultText",
    target_type="TextGeneration",
)

rm = datarobot.RegisteredModel(
    resource_name="pulumi_registered_model",
    name=None,
    custom_model_version_id=cm.version_id,
)

d = datarobot.Deployment(
    "pulumi_deployment",
    label="pulumi_deployment",
    prediction_environment_id=pe.id,
    registered_model_version_id=rm.version_id,
)

pulumi.export("deployment_id", d.id)