为作业指定虚拟机操作系统映像

本页介绍了如何为作业运行的虚拟机 (VM) 实例指定操作系统 (OS) 映像。如果您还想自定义作业启动磁盘的其他属性,请参阅 创建和运行使用自定义启动磁盘的作业

如需详细了解虚拟机操作系统映像以及您可以使用哪些虚拟机操作系统映像,请参阅虚拟机操作系统环境概览

准备工作

  1. 如果您以前没有使用过 Batch,请参阅 Batch 使用入门 并通过填写 针对项目和用户的前提条件
  2. 如需获取创建作业所需的权限, 请让管理员授予您 以下 IAM 角色:

    如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

    您也可以通过自定义角色或其他预定义角色来获取所需的权限。

创建和运行使用特定虚拟机操作系统映像的作业

在创建作业时,请通过以下任一方法指定虚拟机操作系统映像:

  • 使用指定了虚拟机操作系统映像的 Compute Engine 实例模板。 如果您想在创建此作业时使用虚拟机实例模板, 您必须在虚拟机实例模板中指定虚拟机操作系统映像。 有关说明,请参阅 使用虚拟机实例模板定义作业资源
  • 使用“虚拟机操作系统映像”字段。按照以下说明操作 指定虚拟机操作系统映像 image 字段 gcloud CLI 或 Batch API。

gcloud

  1. 创建一个 JSON 文件,用于指定作业的配置详细信息。 要为作业指定虚拟机操作系统映像,请添加 image 字段

    例如,创建使用特定虚拟机操作系统的基本脚本作业 请创建一个包含以下内容的 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 替换为 相对资源名称 虚拟机操作系统映像的基础使用以下任一选项:

    • 指定批处理操作系统前缀。要使用最新的 特定 Batch 操作系统的映像,请使用 以下格式:

      BATCH_OS_PREFIX
      

      BATCH_OS_PREFIX 替换为以下其中一项 批处理虚拟机操作系统映像前缀 - 针对 例如,batch-debian 是 Batch Debian OS。

    • 指定映像系列。要使用特定区域中的最新映像 映像系列,请使用以下格式:

      projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
      

      替换以下内容:

      • IMAGE_PROJECT_ID项目 ID 映像所在项目的映像例如,对于 批量映像,指定 batch-custom-image
      • IMAGE_FAMILY:映像系列, 包含一个或多个特定图片, 主要版本 操作系统例如,如需通过批处理查看所有虚拟机操作系统映像系列,请查看虚拟机操作系统映像列表
    • 指定映像版本。如需使用特定版本的虚拟机操作系统映像,请使用以下格式:

      projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
      

      替换以下内容:

      • IMAGE_PROJECT_ID项目 ID 映像所在项目的映像例如,对于所有批处理映像,请指定 batch-custom-image
      • IMAGE_NAME:映像名称,表示虚拟机操作系统映像的特定版本。例如,如需查看所有虚拟机操作系统映像版本,请访问 批量处理,请查看虚拟机操作系统映像列表
  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 方法 并指定作业的配置详情。 要为作业指定虚拟机操作系统映像,请添加 image 字段。 例如,如需创建使用特定虚拟机操作系统映像的基本脚本作业, 发出以下 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:a 相对资源名称 虚拟机操作系统映像的基础使用以下任一选项:

    • 指定 Batch 操作系统前缀。要使用最新的 特定 Batch 操作系统的映像,请使用 以下格式:
    BATCH_OS_PREFIX
    

    BATCH_OS_PREFIX 替换为以下其中一项 批处理虚拟机操作系统映像前缀 - 针对 例如,batch-debian 是 Batch Debian OS。

    • 指定映像系列。如需使用特定映像系列中的最新映像,请使用以下格式:

      projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
      

      替换以下内容:

      • IMAGE_PROJECT_ID项目 ID 映像所在项目的映像例如,对于 批量映像,指定 batch-custom-image
      • IMAGE_FAMILY:映像系列, 包含一个或多个特定图片, 主要版本 操作系统例如,如需查看所有虚拟机操作系统映像系列 批量处理,请查看虚拟机操作系统映像列表
    • 指定映像版本。如需使用特定版本的虚拟机操作系统映像,请使用以下格式:

      projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
      

      替换以下内容:

      • IMAGE_PROJECT_ID项目 ID 映像所在项目的映像例如,对于 批量映像,指定 batch-custom-image
      • IMAGE_NAME:映像名称, 表示特定版本的虚拟机操作系统映像。 例如,如需查看所有虚拟机操作系统映像版本,请访问 批量处理,请查看虚拟机操作系统映像列表

后续步骤