カスタム ブートディスクを使用するジョブを作成して実行する

このページでは、ジョブを実行する各仮想マシン(VM)インスタンスを起動するために使用する永続ディスクをカスタマイズする方法について説明します。

具体的には、ブートディスクのサイズ、タイプ、VM オペレーティング システム(OS)イメージをカスタマイズできます。 VM OS イメージのみをカスタマイズする場合は、ジョブの VM OS イメージを指定するをご覧ください。

ブートディスクの詳細とブートディスクを構成する条件については、VM OS 環境の概要をご覧ください。

準備

  1. Batch を以前に使用したことがない場合は、Batch を使ってみるを確認し、プロジェクトとユーザーの前提条件を完了して Batch を有効にします。
  2. ジョブの作成に必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

    ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。

    必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

カスタム ブートディスクを使用するジョブを作成して実行する

ジョブを作成するときに、次のいずれかの方法を選択して、カスタム ブートディスクを指定します。

gcloud

  1. ジョブの構成の詳細を指定する JSON ファイルを作成します。ジョブの VM に新しいカスタム ブートディスクを指定するには、bootDisk フィールドとサブフィールドを含めます。

    たとえば、新しいカスタム ブートディスクを使用する基本的なスクリプトのジョブを作成するには、次の内容の 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",
                  "type": "BOOT_DISK_TYPE",
                  "sizeGb": BOOT_DISK_SIZE
                }
              }
            }
          ]
        },
        "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 イメージのリストを表示します。
    • BOOT_DISK_TYPE: ブートディスクのディスクタイプpd-standardpd-balancedpd-ssdpd-extreme のいずれか)。 ブートディスクのデフォルトのディスクタイプは pd-balanced です。

    • BOOT_DISK_SIZE: 新規の永続ディスクのサイズ(GB)。この値は、ブートディスクのサイズの要件をすべて満たす必要があります。

  2. ジョブを作成するには、次の 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 イメージを指定するには、bootDisk フィールドとサブフィールドを含めます。たとえば、新しいカスタム ブートディスクを使用する基本的なスクリプトのジョブを作成するには、次の 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",
              "type": "BOOT_DISK_TYPE",
              "sizeGb": BOOT_DISK_SIZE
            }
          }
        }
      ]
    },
    "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 イメージのリストを表示します。
  • BOOT_DISK_TYPE: ブートディスクのディスクタイプpd-standardpd-balancedpd-ssdpd-extreme のいずれか)。 ブートディスクのデフォルトのディスクタイプは pd-balanced です。

  • BOOT_DISK_SIZE: 新規の永続ディスクのサイズ(GB)。この値は、ブートディスクのサイズの要件をすべて満たす必要があります。

次のステップ