このページでは、ジョブを実行する仮想マシン(VM)インスタンスのオペレーティング システム(OS)イメージを指定する方法について説明します。あわせてジョブのブートディスクの他のプロパティをカスタマイズする場合は、カスタム ブートディスクを使用するジョブの作成と実行をご覧ください。
VM OS イメージと使用できる VM OS イメージの詳細については、VM OS 環境の概要をご覧ください。
準備
- Batch を以前に使用したことがない場合は、Batch を使ってみるを確認し、プロジェクトとユーザーの前提条件を完了して Batch を有効にします。
-
ジョブの作成に必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
-
プロジェクトのバッチジョブ編集者(
roles/batch.jobsEditor
) -
ジョブのサービス アカウントのサービス アカウント ユーザー(
roles/iam.serviceAccountUser
)。これは、デフォルトでは Compute Engine のデフォルトのサービス アカウントです。
ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
-
プロジェクトのバッチジョブ編集者(
特定の VM OS イメージを使用するジョブを作成して実行する
ジョブを作成するときに、次のいずれかの方法を選択して VM OS イメージを指定します。
- VM OS イメージを指定する Compute Engine インスタンス テンプレートを使用する。このジョブの作成中に VM インスタンス テンプレートを使用する場合は、VM インスタンス テンプレートで VM OS イメージを指定する必要があります。手順については、VM インスタンス テンプレートを使用してジョブリソースを定義するをご覧ください。
[VM OS イメージ] フィールドを使用する。次の手順に示すように、gcloud CLI または Batch API を使用して
image
フィールドで VM OS イメージを指定できます。
gcloud
ジョブの構成の詳細を指定する JSON ファイルを作成します。ジョブの VM OS イメージを指定するには、
image
フィールドを含めます。たとえば、特定の VM OS イメージを使用する基本的なスクリプト ジョブを作成するには、次の内容の JSON ファイルを作成します。
{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}." } } ] }, "taskCount": 3, "parallelism": 1 } ], "allocationPolicy": { "instances": [ { "policy": { "bootDisk": { "image": "VM_OS_IMAGE_URI" } } } ] }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }
VM_OS_IMAGE_URI
は、VM OS イメージの相対リソース名に置き換えます。以下のいずれかの方法を選択します。Batch OS 接頭辞を指定する。 特定の Batch OS の最新イメージを使用するには、次の形式を使用します。
BATCH_OS_PREFIX
BATCH_OS_PREFIX
は、Batch VM OS イメージ接頭辞のいずれかに置き換えます。たとえば、batch-debian
は Batch Debian OS の接頭辞です。イメージ ファミリーを指定する。 特定のイメージ ファミリーの最新のイメージを使用するには、次の形式を使用します。
projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
以下を置き換えます。
IMAGE_PROJECT_ID
: イメージを含むプロジェクトのプロジェクト ID。たとえば、すべての Batch イメージにはbatch-custom-image
を指定します。IMAGE_FAMILY
: イメージ ファミリー。1 つ以上の特定のイメージが含まれ、OS の種類とメジャー バージョンを表します。たとえば、Batch のすべての VM OS イメージ ファミリーを確認するには、VM OS イメージのリストを表示します。
イメージのバージョンを指定する。 特定のバージョンの VM OS イメージを使用するには、次の形式を使用します。
projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
以下を置き換えます。
IMAGE_PROJECT_ID
: イメージを含むプロジェクトのプロジェクト ID。たとえば、すべての Batch イメージにはbatch-custom-image
を指定します。IMAGE_NAME
: イメージ名。VM OS イメージの特定のバージョンを表します。たとえば、Batch のすべての VM OS イメージ バージョンを確認するには、VM OS イメージのリストを表示します。
ジョブを作成するには、次の
gcloud batch jobs submit
コマンドを実行します。gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
以下を置き換えます。
JOB_NAME
: このジョブの名前。LOCATION
: このジョブのロケーション。JSON_CONFIGURATION_FILE
: ジョブの構成の詳細を含む JSON ファイルへのパス。
API
Batch API を使用してジョブを作成するには、jobs.create
メソッドを使用してジョブの構成の詳細を指定します。ジョブの VM OS イメージを指定するには、image
フィールドを含めます。たとえば、特定の VM OS イメージを使用する基本的なスクリプト ジョブを作成するには、次の POST
リクエストを行います。
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world from task ${BATCH_TASK_INDEX}."
}
}
]
},
"taskCount": 3,
"parallelism": 1
}
],
"allocationPolicy": {
"instances": [
{
"policy": {
"bootDisk": {
"image": "VM_OS_IMAGE_URI"
}
}
}
]
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
以下を置き換えます。
PROJECT_ID
: プロジェクトのプロジェクト IDLOCATION
: このジョブのロケーション。JOB_NAME
: このジョブの名前。VM_OS_IMAGE_URI
: VM OS イメージの相対リソース名。以下のいずれかの方法を選択します。- Batch OS 接頭辞を指定する。 特定の Batch OS の最新イメージを使用するには、次の形式を使用します。
BATCH_OS_PREFIX
BATCH_OS_PREFIX
は、Batch VM OS イメージ接頭辞のいずれかに置き換えます。たとえば、batch-debian
は Batch Debian OS の接頭辞です。イメージ ファミリーを指定する。 特定のイメージ ファミリーの最新のイメージを使用するには、次の形式を使用します。
projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
以下を置き換えます。
IMAGE_PROJECT_ID
: イメージを含むプロジェクトのプロジェクト ID。たとえば、すべての Batch イメージにはbatch-custom-image
を指定します。IMAGE_FAMILY
: イメージ ファミリー。1 つ以上の特定のイメージが含まれ、OS の種類とメジャー バージョンを表します。たとえば、Batch のすべての VM OS イメージ ファミリーを確認するには、VM OS イメージのリストを表示します。
イメージのバージョンを指定する。 特定のバージョンの VM OS イメージを使用するには、次の形式を使用します。
projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
以下を置き換えます。
IMAGE_PROJECT_ID
: イメージを含むプロジェクトのプロジェクト ID。たとえば、すべての Batch イメージにはbatch-custom-image
を指定します。IMAGE_NAME
: イメージ名。VM OS イメージの特定のバージョンを表します。たとえば、Batch のすべての VM OS イメージ バージョンを確認するには、VM OS イメージのリストを表示します。
次のステップ
- ジョブの作成または実行に問題がある場合は、トラブルシューティングをご覧ください。
- VM OS イメージの詳細を確認する。
- ジョブの作成の詳細を確認する。
- ジョブとタスクを表示する方法を確認する。