本页面介绍如何在创建部署之前预览配置文件。如需详细了解配置,请阅读配置概览。
编写配置文件后,您可以在创建部署前预览配置。通过预览配置,您可以查看 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
仍处于预览模式时,您无法部署新配置。取消预览,然后使用新配置更新部署。