本頁說明如何在建立部署作業之前先預覽設定檔。如要進一步瞭解設定,請參閱設定總覽。
撰寫設定檔後,您可以在建立部署作業之前先預覽設定。預覽設定可讓您看到 Deployment Manager 將會建立的資源,但實際上不會將任何實際資源實例化。Deployment Manager 服務會透過下列方法來預覽設定:
- 展開完整的設定,包括任何範本。
- 建立部署作業和「殼層」資源。
您可以在提出 insert()
要求時,使用 preview
查詢參數預覽設定。
事前準備
- 如要使用本指南提供的指令列範例,請安裝 `gcloud` 指令列工具。
- 如要使用本指南提供的 API 範例,請設定 API 存取權。
- 瞭解如何建立基本設定。
預覽新的設定
您可以使用 Google Cloud CLI 或向 API 發出直接要求來預覽設定。
gcloud
如果您使用 Google Cloud CLI,請使用 create
子指令並加上 --preview
旗標:
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
仍處於預覽模式時,您將無法部署新的設定。取消預覽,然後使用新的設定更新部署作業。