本頁說明如何建立部署作業。針對設定中定義的一組資源所建立的執行個體即為部署。在要求中提供有效的設定就能建立部署作業。部署可包含許多 Google Cloud 各種服務的資源。建立部署作業時,Deployment Manager 會在相關的 Google Cloud API 中建立所有必要的資源。
事前準備
- 如要使用本指南提供的指令列範例,請安裝 `gcloud` 指令列工具。
- 如要使用本指南提供的 API 範例,請設定 API 存取權。
- 建立設定。
建立部署作業
建立部署作業即代表建立含有一組特定資源的部署資源。您在要求中提供的設定會明確定義每項資源。
gcloud
使用 Google Cloud CLI 時,請使用 deployments create 指令:
gcloud deployment-manager deployments create my-first-deployment \
--config vm.yaml
--config 旗標是 YAML 設定檔的相對路徑。
根據預設,如果您的設定包含專案中現有的資源,則部署作業就會取得這些資源,而您也可以透過部署作業來管理資源。如果您不想取得某項資源,則必須在 gcloud beta 指令中使用 --create-policy 選項,如下所示:
gcloud beta deployment-manager deployments create my-first-deployment \
--config vm.yaml --create-policy CREATE
如要瞭解在建立部署作業時可以使用的政策,請參閱設定適用於建立資源的政策一文。
如果您已經成功建立部署作業,則可以取得關於部署作業的說明:
gcloud deployment-manager deployments describe my-first-deployment
API
透過 API 發出在要求內文中包含內嵌設定的 insert() 要求:
POST https://www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments
{
"name": "example-config-with-templates",
"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-v20151104\n networkInterfaces:\n - network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default\n"
}
}
}
如果您匯入的是範本,則必須也在要求內文中提供那些範本。舉例來說,下列 API 要求含有 target,會匯入一個名為 vm_template.jinja 的範本:
POST https://www-www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments
{
"name": "my-example-config-with-templates-2",
"target": {
"config": {
"content": "imports:\n- path: vm_template.jinja\n\nresources:\n- name: my-vm\n type: vm_template.jinja"
},
"imports": [