# チュートリアル：Hello, Workload

> チュートリアル：Hello, Workload - cURL、CLI、またはPulumiを使用して、最初のドラフトワークロードを約5分でデプロイします。

This Markdown file sits beside the HTML page at the same path (with a `.md` suffix). It summarizes the topic and lists links for tools and LLM context.

Companion generated at `2026-09-02T14:28:12.972718+00:00` (UTC).

## Primary page

- [チュートリアル：Hello, Workload](https://docs.datarobot.com/ja/docs/workload-api/get-started-workloads/tutorial-hello-world.html.md): Full documentation for this topic (Markdown sidecar).

## Sections on this page

- [前提条件](https://docs.datarobot.com/ja/docs/workload-api/get-started-workloads/tutorial-hello-world.html.md#prerequisites): In-page section heading.
- [whoamiのデプロイ](https://docs.datarobot.com/ja/docs/workload-api/get-started-workloads/tutorial-hello-world.html.md#deploy-whoami): In-page section heading.
- [実行の待機](https://docs.datarobot.com/ja/docs/workload-api/get-started-workloads/tutorial-hello-world.html.md#wait-for-running): In-page section heading.
- [こんにちはと言う](https://docs.datarobot.com/ja/docs/workload-api/get-started-workloads/tutorial-hello-world.html.md#say-hello): In-page section heading.
- [削除](https://docs.datarobot.com/ja/docs/workload-api/get-started-workloads/tutorial-hello-world.html.md#clean-up): In-page section heading.
- [サマリー](https://docs.datarobot.com/ja/docs/workload-api/get-started-workloads/tutorial-hello-world.html.md#summary): In-page section heading.
- [次のステップ](https://docs.datarobot.com/ja/docs/workload-api/get-started-workloads/tutorial-hello-world.html.md#next-steps): In-page section heading.

## Documentation content

> [!NOTE] プレミアム機能
> Workload APIはプレミアム機能です。 この機能を有効にする方法については、DataRobotの担当者または管理者にお問い合わせください。

このチュートリアルでは、ゼロからDataRobotでコンテナを実行するまでの最短のパスを説明します。約5分で、リクエストヘッダーをエコーする小さな公開サードパーティイメージ（DataRobotが公開したものではありません）である [containous/whoami](https://hub.docker.com/r/containous/whoami) を ドラフトワークロード としてデプロイし、エンドポイントにアクセスして、破棄します。

ドラフトワークロードは、Workload APIにおけるhello-worldに相当します。作成呼び出しは1回だけで、アーティファクトの登録手続きは不要であり、手動でクリーンアップしなくても自動的にクリーンアップされる [8時間のTTL](https://docs.datarobot.com/ja/docs/workload-api/create-workloads/workload-concepts.html.md#lifetime-policies) があります。

作業方法に合ったタブを選択してください。 cURL はREST APIを直接呼び出し、 CLI は同じ呼び出しを `dr workload` コマンドにラップし、 Pulumi は終了状態を宣言して調整します。実行可能なノートブックを使用する場合は、次を選択します。

[実行可能なノートブックとして表示](https://docs.datarobot.com/ja/docs/workload-api/get-started-workloads/nb-tutorial-hello-world.html.md)

## 前提条件

**cURL:**
curl
と、オプションで
jq
が利用可能なターミナル（以下のコマンドでJSON応答からフィールドを抽出するために使用されます。
jq
がない場合は、末尾の
| jq ...
を削除して、代わりに生の応答を読み取ってください）。
シェル変数としてエクスポートされたDataRobot APIエンドポイントとトークン。

```
export DATAROBOT_ENDPOINT="[https://app.datarobot.com/api/v2](https://app.datarobot.com/api/v2)"
export DATAROBOT_API_TOKEN="<your-api-token>" 
```

**CLI:**
dr auth login
で認証されているか、シェルで
DATAROBOT_ENDPOINT
/
DATAROBOT_API_TOKEN
が設定されている
DataRobot CLI
（
dr
）。
ワークロードコマンドの有効化：
export DATAROBOT_CLI_FEATURE_WORKLOAD=true
。

**Pulumi:**
インストール済みの
Pulumi CLI
と
DataRobot Pulumiプロバイダー
。
datarobot:endpoint
と
datarobot:apikey
で設定されたPulumiスタック—
Pulumiのセットアップ
を参照してください。


## whoamiのデプロイ

インラインのドラフトアーティファクトを使用してワークロードを作成します—1回の呼び出しでコンテナを定義し、ワークロードを一緒に作成します。

**cURL:**
```
curl -s -X POST "${DATAROBOT_ENDPOINT}/workloads" \
  -H "Authorization: Bearer ${DATAROBOT_API_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "hello-whoami",
    "artifact": {
      "name": "whoami-artifact",
      "type": "service",
      "spec": {
        "containerGroups": [{
          "name": "default",
          "containers": [{
            "name": "whoami",
            "imageUri": "containous/whoami:latest",
            "port": 8080,
            "primary": true,
            "entrypoint": ["/whoami", "--port", "8080"],
            "readinessProbe": {"path": "/", "port": 8080, "initialDelaySeconds": 5}
          }]
        }]
      }
    },
    "runtime": {
      "containerGroups": [{
        "name": "default",
        "replicaCount": 1,
        "containers": [{
          "name": "whoami",
          "resourceAllocation": {"cpu": 1, "memory": "512MB"}
        }]
      }]
    }
  }' | tee /tmp/workload.json | jq -r '.id'

export WORKLOAD_ID=$(jq -r '.id' /tmp/workload.json) 
```


応答はワークロードオブジェクトです。 `id` は、このチュートリアルの残りの部分で使用されるワークロードIDです。

**CLI:**
仕様をファイルに保存します：

```
name: hello-whoami
artifact:
  name: whoami-artifact
  type: service
  spec:
    containerGroups:
      - name: default
        containers:
          - name: whoami
            imageUri: containous/whoami:latest
            port: 8080
            primary: true
            entrypoint: ["/whoami", "--port", "8080"]
            readinessProbe:
              path: "/"
              port: 8080
              initialDelaySeconds: 5
runtime:
  containerGroups:
    - name: default
      replicaCount: 1
      containers:
        - name: whoami
          resourceAllocation:
            cpu: 1
            memory: "512MB" 
```

次に、それを作成します：

```
dr workload create --spec-file workload.yaml --output-format json | tee /tmp/workload.json
export WORKLOAD_ID=$(jq -r '.id' /tmp/workload.json) 
```

**Pulumi:**
```
import pulumi
import pulumi_datarobot as datarobot

artifact = datarobot.Artifact(
    "whoami-artifact",
    name="whoami-artifact",
    type="service",
    spec={
        "container_groups": [{
            "name": "default",
            "containers": [{
                "name": "whoami",
                "image_uri": "containous/whoami:latest",
                "port": 8080,
                "primary": True,
                "entrypoint": ["/whoami", "--port", "8080"],
                "readiness_probe": {"path": "/", "port": 8080, "initial_delay_seconds": 5},
            }]
        }]
    },
)

workload = datarobot.Workload(
    "hello-whoami",
    name="hello-whoami",
    artifact_id=artifact.artifact_id,
    runtime={
        "container_groups": [{
            "name": "default",
            "replica_count": 1,
            "containers": [{
                "name": "whoami",
                "resource_allocation": {"cpu": 1, "memory": "512MB"},
            }],
        }]
    },
)

pulumi.export("workloadId", workload.id)
pulumi.export("endpoint", workload.endpoint) 
```

```
pulumi up 
```

`pulumi up` はワークロードが `running` に達するまでブロックされるため、応答が返されたら、 [こんにちはと言う（Say hello）](https://docs.datarobot.com/ja/docs/workload-api/get-started-workloads/tutorial-hello-world.html.md#say-hello) に進みます。


## 実行の待機

ワークロードが `running` に達するまで、ワークロードのステータスをポーリングします。想定される正常な進行： `submitted` → `provisioning` → `launching` → `running` 。 `running` は、Readiness Probe（ [Deploy whoami](https://docs.datarobot.com/ja/docs/workload-api/get-started-workloads/tutorial-hello-world.html.md#deploy-whoami) で設定された `path: "/"` ）がコンテナのポートで2xxを返すことを必要とします—パスをタイプミスした場合、コンテナ自体が起動していても、ワークロードは `launching` のままになります。

**cURL:**
```
curl -s "${DATAROBOT_ENDPOINT}/workloads/${WORKLOAD_ID}" \
  -H "Authorization: Bearer ${DATAROBOT_API_TOKEN}" | jq -r '.status' 
```

For the full lifecycle audit trail, call the events endpoint directly:

```
curl -s "${DATAROBOT_ENDPOINT}/workloads/${WORKLOAD_ID}/events" \
  -H "Authorization: Bearer ${DATAROBOT_API_TOKEN}" 
```

**CLI:**
```
dr workload status "$WORKLOAD_ID" 
```

`errored` と表示されている場合、 `dr workload get "$WORKLOAD_ID"` で詳細を表示できます。

**Pulumi:**
ここですべきことはありません。 `pulumi up` はすでに `running` になるまでブロックされています。


## こんにちはと言う

呼び出しURLを読み取り、呼び出します。 `whoami` はリクエストヘッダーと接続情報をエコーバックします。それがHello Worldです。

**cURL:**
```
ENDPOINT=$(curl -s "${DATAROBOT_ENDPOINT}/workloads/${WORKLOAD_ID}" \
  -H "Authorization: Bearer ${DATAROBOT_API_TOKEN}" | jq -r '.endpoint')

curl -H "Authorization: Bearer ${DATAROBOT_API_TOKEN}" "${ENDPOINT}" 
```

**CLI:**
```
ENDPOINT=$(dr workload endpoint "$WORKLOAD_ID")
curl -H "Authorization: Bearer ${DATAROBOT_API_TOKEN}" "$ENDPOINT" 
```

**Pulumi:**
```
curl -H "Authorization: Bearer ${DATAROBOT_API_TOKEN}" "$(pulumi stack output endpoint)" 
```


> [!NOTE] 401エラー
> 呼び出しが `401` を返す場合、 `DATAROBOT_API_TOKEN` が設定され、 `Authorization: Bearer` ヘッダーで渡されていることを再確認してください—プラットフォームは、エンドポイントが到達可能であることが確認された後にのみワークロードを `running` として報告します。したがって、その時点での永続的な `401` は、まだ伝播していないルートではなく、トークンに問題があることを示しています。

## 削除

ドラフトワークロードは、8時間のTTL後に自動的に終了するため、クリーンアップはオプションですが、整理しておくことをお勧めします。

**cURL:**
```
curl -X POST "${DATAROBOT_ENDPOINT}/workloads/${WORKLOAD_ID}/stop" \
  -H "Authorization: Bearer ${DATAROBOT_API_TOKEN}" 
```

**CLI:**
```
dr workload stop "$WORKLOAD_ID" 
```

**Pulumi:**
```
pulumi destroy 
```


## サマリー

このチュートリアルでは、次のことを行いました。

- インラインドラフトアーティファクト（タイプ service ）から ドラフトワークロード を作成しました。
- プラットフォームがコンテナグループを構築し、Readiness Probeを実行し、呼び出しURLを割り当てるのを確認しました。
- そのURLを呼び出して、トラフィックがエンドツーエンドで流れることを確認しました。
- アーティファクトが draft であるため、ワークロードの寿命が短いことを学びました（8時間のTTL、ドラフトアーティファクトごとに1つのワークロード、自動クリーンアップ）。

## 次のステップ

| リソース | 説明 |
| --- | --- |
| チュートリアル：本番環境ですぐに使用できるコンテナのデプロイ | ロックされたアーティファクト、重要度、共有、監視を使用してサービスを本番環境に移行します。 |
| ワークロードの概念 | オブジェクトモデル、ライフサイクル状態、およびドラフトとロックの決定に関する詳細。 |
| CLIを使用したワークロードの管理 | dr workloadコマンドの完全なリファレンス。 |
| Pulumiを使用したワークロードの管理 | 完全なPulumiプロバイダーリファレンスと本番環境のパターン。 |
