Deployment Manager 基礎知識

下列元件是 Deployment Manager 的基礎。

設定

設定說明單一部署作業所需的所有資源。設定是使用 YAML 語法編寫的檔案,其中列出了您要建立的每個資源及其各自的資源屬性。設定必須包含 resources: 區段,再加上待建立資源的清單。

每個資源都必須包含三個元件:

  • name:可識別此資源的使用者定義字串,例如 my-vmproject-data-diskthe-test-network
  • type:正在部署的資源類型,例如 compute.v1.instancecompute.v1.disk支援的資源類型說明文件中詳述並列出基礎資源類型。
  • properties:此資源類型的參數。這些參數必須與類型的屬性 (例如 zone: asia-east1-aboot: true) 相符。

下列為設定範例:

resources:
- name: the-first-vm
  type: compute.v1.instance
  properties:
    zone: us-central1-a
    machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/f1-micro
    disks:
    - deviceName: boot
      type: PERSISTENT
      boot: true
      autoDelete: true
      initializeParams:
        sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20150423
    networkInterfaces:
    - network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default
      accessConfigs:
      - name: External NAT
        type: ONE_TO_ONE_NAT

範本

設定可以包含範本,範本基本上是已擷取至個別構成要素的設定檔的組成部分。建立範本後,您可以視需要在多個部署作業之間重複使用。同樣地,如果您發現自己重新編寫了共用非常相似屬性的設定,您可以將共用的部分擷取為範本。範本比個別設定檔更有彈性,目的在於提升部署之間的可攜性。

範本檔案是以 Python 或 Jinja2 編寫而成。Deployment Manager 系統會以遞迴方式解譯每個範本,並將結果內嵌在設定檔中。因此,每個範本的解譯結果最終產生的資源 YAML 語法,會與上述為設定檔本身定義的語法相同。

如要建立簡單的範本,請參閱建立基本範本一文。

設定的說明敘述可為完全展開或未展開。完全展開的設定說明部署的所有資源和屬性,包括匯入的範本檔案中的任何內容。例如,您可以提供使用範本的未展開設定,如下所示:

imports:
- path: vm_template.jinja

resources:
- name: vm-instance
  type: vm_template.jinja
  properties:
    zone: us-central1-a
    project: myproject

展開後,您的設定檔將包含所有範本的內容,如下所示:

resources:
- name: the-first-vm
  type: compute.v1.instance
  properties:
    zone: us-central1-a
    machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/f1-micro
    disks:
    - deviceName: boot
      type: PERSISTENT
      boot: true
      autoDelete: true
      initializeParams:
        sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20150423
        networkInterfaces:
        - network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default
    accessConfigs:
    - name: External NAT
      type: ONE_TO_ONE_NAT

資源

資源代表單一 API 資源。這可以是由 Google 代管基礎類型提供的 API 資源,或是由類型提供者提供的 API 資源。例如,Compute Engine 執行個體是單一資源,Cloud SQL 執行個體也是單一資源,依此類推。

如要指定資源,您必須為該資源提供類型。請參閱下方的「類型」一節,進一步瞭解類型的更多資訊。

類型

如要在 Deployment Manager 中建立資源,您必須指定 type。類型可以代表單一 API 資源 (稱為基礎類型) 或一組資源 (稱為複合類型),並且會在部署作業中建立。

例如,如要建立 Compute Engine VM 執行個體,請在設定中指定如下的對應基礎類型:

resources:
- name: the-first-vm
  type: compute.v1.instance # The type of resource to deploy
  ...

Deployment Manager 提供了由 Google 維護且可供您立即使用的基礎類型清單。您可以在支援的資源類型和屬性說明文件中找到這些類型的清單。

基礎類型和類型提供者

基礎類型可建立單一原始資源。例如,Google 擁有的基礎類型包括 compute.v1.instancestorage.v1.bucketsqladmin.v1beta4.database,所有這些類型都由 Compute Engine V1 API、Cloud Storage V1 API 和 Cloud SQL v1beta4 Admin API 分別提供。

基礎類型由支援建立、讀取、更新和刪除 (CRUD) 作業的 RESTful API 提供支援。如果只有 Google 擁有的類型無法滿足您的需求時,您也可以透過新增類型提供者來建立其他基礎類型。建立類型提供者會將 API 的所有資源公開為您可以使用的基礎類型。如要建立類型提供者,您必須提供 API 描述元文件 (可以是 OpenAPI 規範Google Discovery)、針對 API 調整任何必要的輸入對應,並透過 Deployment Manager 註冊類型。建立後,您和其他具有專案存取權的使用者都可以使用該提供者所提供的類型。

在您新增類型提供者之後,只要資源是由 API 提供,且受符合 REST 樣式並具有建立、讀取、更新和刪除 (CRUD) 作業功能的介面支援,都將公開為可在部署中使用的類型。

建立您專屬的類型提供者屬於高階的用法,除非您相當熟悉要整合的 API,否則 Google 不建議您採取這個做法。

如要瞭解如何建立類型提供者,請參閱與 Deployment Manager 進行整合一文。

在範本或設定中呼叫基礎類型時,您可以根據類型使用下列其中一種語法。

  • 如果是 Google 代管的基礎類型,請使用:

    type: [API].[VERSION].[RESOURCE]
    

    例如 compute.v1.instance

  • 如果是 Google 代管的類型提供者 (Beta 版),請使用:

    type: gcp-types/[PROVIDER]:[RESOURCE]
    

    如需支援的類型提供者清單,請參閱支援的 GCP 類型提供者一文。

  • 如果是類型提供者提供的基礎類型,請使用:

    type: [PROJECT_ID]/[TYPE_PROVIDER]:[COLLECTION]
    

    其中 [COLLECTION] 是要部署的 API 資源的路徑。

複合類型

複合類型包含一或多個已預先設定為搭配使用的範本。這些範本部署至部署作業中後,會展開為一組基礎類型。複合類型在本質上屬於可新增至 Deployment Manager 的託管範本。您可以針對常用解決方案建立複合類型,以便可以輕鬆地重複使用該解決方案,或是建立可在未來重複使用的複雜設定。

例如,您可以建立一個複合類型,其中部署了已達到網路負載平衡的代管執行個體群組。網路負載平衡器需要多個 Google Cloud Platform 資源以及資源之間的一些配置,因此您可以在配置中設定一次這些資源,並向 Deployment Manager 註冊該類型。之後,您和其他具有專案存取權的使用者就可以在日後的配置中呼叫該類型並進行部署。

如要在設定中呼叫複合類型,請使用:

type: [PROJECT_ID]/composite:[TYPE_NAME]

例如:

resources:
- name: my-composite-type
  type: myproject/composite:example-composite-type

如要瞭解如何建立複合類型,請參閱新增複合類型至 Deployment Manager 一文。

資訊清單

資訊清單是一個唯讀物件,其中包含您提供的原始設定,包括任何匯入的範本,同時也包含由 Deployment Manager 建立的完全展開資源清單。每次更新部署作業時,Deployment Manager 都會產生一個新的資訊清單檔案以反映部署作業的新狀態。在對部署作業問題進行疑難排解時,查看資訊清單會非常實用。

詳情請參閱查看資訊清單一文。

部署作業

部署作業是使用設定共同進行部署和管理的一組資源。

詳情請參閱建立部署作業一文。

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Cloud Deployment Manager 說明文件