本页面介绍如何在创建部署之前预览配置文件。如需详细了解配置,请阅读配置概览。
编写配置文件后,您可以在创建部署前预览配置。通过预览配置,您可以查看 Deployment Manager 将会创建但实际上并未实例化的任何实际资源。Deployment Manager 服务通过以下方式预览配置:
- 展开完整配置,包括任何模板。
- 创建部署和“空壳”资源。
发出 insert() 请求时,您可以使用 preview 查询参数预览配置。
准备工作
- 如果要使用本指南中的命令行示例,请安装 “gcloud” 命令行工具。
- 如果希望使用本指南中的 API 示例,请设置 API 访问权限。
- 了解如何创建基本配置。
预览新配置
通过使用 Google Cloud CLI 或向 API 发出直接请求来预览配置。
gcloud
如果您使用的是 Google Cloud CLI,请使用带有 --preview 标志的 create 子命令:
gcloud deployment-manager deployments create example-config --config configuration-file.yaml \
--preview
服务器返回状态为 IN_PREVIEW 的资源的列表供您查看:
The fingerprint of the deployment is ulPDrJON8E5ySHKC5fcukw==
Waiting for create [operation-1492785372594-54dae2ddbff50-58d45d53-12d483cf]...done.
Create operation operation-1492785372594-54dae2ddbff50-58d45d53-12d483cf completed successfully.
NAME TYPE STATE ERRORS INTENT
datadisk-example compute.v1.disk IN_PREVIEW [] CREATE_OR_ACQUIRE
vm-example compute.v1.instance IN_PREVIEW [] CREATE_OR_ACQUIRE
API
在 API 中,使用 insert() 方法,并在请求正文中包含 target 和 name 字段以及 preview=true 查询参数。在 target 字段中提供您的配置。
例如,以下 API 请求可预览一个简单的模板:
POST https://www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments?preview=true
{
"name": "example-config",
"target": {
"config": {
"content": "resources:\n- name: vm-created-by-cloud-config\n type: compute.v1.instance\n properties:\n zone: us-central1-a\n machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/n1-standard-1\n disks:\n - deviceName: boot\n type: PERSISTENT\n boot: true\n autoDelete: true\n initializeParams:\n diskName: disk-created-by-cloud-config\n sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20140619\n networkInterfaces:\n networkInterfaces:\n - network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default"
}
}
}
部署处于预览模式时,您可以通过以下三种方式之一继续部署:
执行多个预览
如果要更改配置并执行其他预览,请使用带有 --preview 标志的 update 命令:
gcloud deployment-manager deployments update example-config \
--config new-config.yaml --preview
在 API 中,使用现有部署发出 PUT() 请求,并提供 preview=true 查询参数。请求正文必须包含 intent、target 和 name 字段。例如,以下 API 请求预览了一个简单的更新:
PUT https://www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments/example-config?preview=true
{
"target": {
"config": {
"content": "resources:\n- name: vm-created-by-cloud-config\n type: compute.v1.instance\n properties:\n zone: us-central1-a\n machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/n1-standard-1\n disks:\n - deviceName: boot\n type: PERSISTENT\n boot: true\n autoDelete: true\n initializeParams:\n diskName: disk-created-by-cloud-config\n sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20140619\n networkInterfaces:\n - network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default"
}
},
"name": "example-config"
}
部署或取消预览
预览部署后,您可以通过执行更新并提交配置来继续部署。例如,假设您有一个名为 example-config 的部署当前处于预览模式。您可以通过运行以下命令继续部署:
gcloud deployment-manager deployments update example-config
Deployment Manager 使用上次预览的配置创建部署。
或者,如果您不想继续使用该配置,则可以取消预览,然后删除部署:
gcloud deployment-manager deployments cancel-preview example-config
部署处于预览模式时,您无法使用其他配置继续进行部署。例如,假设您有一个名为example-config的部署,使用名为 vm.yaml 的配置并处于预览模式下。您决定跳过预览过程,将名为 two_vms.yaml 的新配置部署于同一配置。example-config 仍处于预览模式时,您无法部署新配置。取消预览,然后使用新配置更新部署。