本頁說明如何自訂用於啟動作業所執行每個虛擬機器 (VM) 執行個體的永久磁碟。
具體來說,您可以自訂開機磁碟的大小、類型和/或 VM 作業系統 (OS) 映像檔。如要自訂 VM OS 映像檔,請參閱為作業指定 VM OS 映像檔。
如要進一步瞭解開機磁碟和設定開機磁碟的時機,請參閱「VM OS 環境總覽」。
事前準備
- 如果您從未使用過 Batch,請參閱「開始使用 Batch」,並完成專案和使用者的必要條件,啟用 Batch。
- 
  
  
  
  
  
  
  
    
    
    
    
    
    
      
      
        
        
        
        
        
      
    
      
      
        
        
        
        
        
      
    
    
    
    
    
  
  如要取得建立作業所需的權限,請要求管理員授予下列 IAM 角色: - 
  
  
    
      批次工作編輯者  (roles/batch.jobsEditor) 專案
- 
  
  
    
      服務帳戶使用者  (roles/iam.serviceAccountUser) 在作業的服務帳戶上,預設為預設 Compute Engine 服務帳戶
 如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。 
- 
  
  
    
      批次工作編輯者  (
建立及執行使用自訂開機磁碟的工作
建立工作時,請選取下列其中一種方法,指定自訂開機磁碟:
- 使用指定現有自訂開機磁碟的 Compute Engine 執行個體範本。 如要在建立這項工作時使用 VM 執行個體範本,或使用預先存在的自訂開機磁碟,請完成下列步驟: - 建立或找出自訂開機磁碟。 - 如要瞭解 Batch 的開機磁碟需求,請參閱這份文件和 VM OS 環境總覽。如需建立開機磁碟的操作說明,請參閱 Compute Engine 說明文件中的「建立自訂開機磁碟」。 
- 建立或找出包含這個自訂開機磁碟的 VM 執行個體範本。 - 如需建立 VM 執行個體範本的操作說明,請參閱 Compute Engine 說明文件中的「建立執行個體範本」。 
- 建立並執行包含這個 VM 執行個體範本的工作。 - 如需建立及執行這項工作的操作說明,請參閱「使用 VM 執行個體範本定義工作資源」。 
 
- 使用開機磁碟欄位指定新的自訂開機磁碟。 如以下操作說明所述,使用 gcloud CLI 或 Batch API 建立及執行工作時,可以透過啟動磁碟 ( - bootDisk) 欄位定義新的自訂啟動磁碟。- 具體來說,您可以設定「VM OS image」(VM OS 映像檔) ( - image)、「persistent disk type」(永久磁碟類型) (- type) 和/或「size」(大小) (- sizeGb) 子欄位,自訂開機磁碟。如果您選擇省略任何子欄位,Batch 會為這些子欄位設定預設值。
gcloud
- 建立 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_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:映像檔系列,包含一或多個特定映像檔,代表 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-standard、- pd-balanced、- pd-ssd或- pd-extreme。開機磁碟的預設磁碟類型為- pd-balanced。
- BOOT_DISK_SIZE:新的永久開機磁碟大小,單位為 GB。這個值必須符合所有開機磁碟大小規定。
 
- 如要建立工作,請執行下列 - 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_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:映像檔系列,包含一或多個特定映像檔,代表 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-standard、- pd-balanced、- pd-ssd或- pd-extreme。開機磁碟的預設磁碟類型為- pd-balanced。
- BOOT_DISK_SIZE:新的永久開機磁碟大小,單位為 GB。這個值必須符合所有開機磁碟大小規定。
後續步驟
- 如果無法建立或執行工作,請參閱「疑難排解」。
- 進一步瞭解開機磁碟和 VM OS 映像檔。
- 進一步瞭解如何建立工作。
- 瞭解如何查看工作和工作項目。