指定工作適用的 VM OS 映像檔

本頁說明如何為作業執行的虛擬機器 (VM) 執行個體指定作業系統 (OS) 映像檔。如要自訂作業開機磁碟的其他屬性,請改為參閱「建立及執行使用自訂開機磁碟的作業」。

如要進一步瞭解 VM OS 映像檔和可使用的 VM OS 映像檔,請參閱「VM OS 環境總覽」。

事前準備

  1. 如果您從未使用過 Batch,請參閱「開始使用 Batch」,並完成專案和使用者的必要條件,啟用 Batch。
  2. 如要取得建立作業所需的權限,請要求管理員授予下列 IAM 角色:

    如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

    您或許還可透過自訂角色或其他預先定義的角色取得必要權限。

建立及執行使用特定 VM OS 映像檔的工作

建立工作時,請選取下列其中一種方法,指定 VM 作業系統映像檔:

  • 使用指定 VM OS 映像檔的 Compute Engine 執行個體範本。 如要在建立這項工作時使用 VM 執行個體範本,您必須在 VM 執行個體範本中指定 VM OS 映像檔。如需操作說明,請參閱「使用 VM 執行個體範本定義工作資源」。
  • 使用「VM OS 映像檔」欄位。如以下操作說明所述,您可以使用 gcloud CLI 或 Batch API,在 image 欄位中指定 VM OS 映像檔。

gcloud

  1. 建立 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_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:映像檔系列,包含一或多個特定映像檔,代表作業系統的類型和主要版本。舉例來說,如要查看 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 映像檔清單
  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 映像檔,請加入 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:專案的專案 ID
  • LOCATION:這份工作的地點
  • JOB_NAME:這項工作的名稱。
  • VM_OS_IMAGE_URI:VM 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:映像檔系列,包含一或多個特定映像檔,代表作業系統的類型和主要版本。舉例來說,如要查看 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 映像檔清單

後續步驟