使用 gcloud 或 API 建立部署作業

本頁說明如何建立部署作業。針對設定中定義的一組資源所建立的執行個體即為部署。在要求中提供有效的設定就能建立部署作業。部署可包含許多 Google Cloud 各種服務的資源。建立部署作業時,Deployment Manager 會在相關的 Google Cloud 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": [