作为云管理员,您可以在构建基础架构时利用 Google Cloud Platform (GCP) 插件置备基于插件的存储桶。此外,还可以使用分配帮助程序为存储桶提供分配逻辑。基于插件的存储桶支持包括创建多区域或双区域存储桶资源、受限的公共访问和加密。

要了解有关 VMware Aria Automation 中的插件和分配的更多信息,请参见 Automation Assembler 中基于插件的设计和部署

存储桶属性

基于插件的存储桶资源需要以下属性。有关实例属性的完整列表,请参见 Google Cloud REST 文档。GCP 文档中的资源属性以驼峰形式编写,而 Automation Assembler 中的资源属性以蛇形形式编写。

属性 说明
name 存储桶的名称。创建后,无法更改与存储桶关联的名称,因此该名称必须唯一且人工可读。

有关存储桶名称要求,请参见 Google Cloud 文档中的存储桶名称

account 您的团队在其中部署云模板的帐户区域的 GCP 云帐户。

有关详细信息,请参见VMware Aria Automation 中创建 Google Cloud Platform 云帐户

以下部分包含一些用于在 Automation Assembler 中置备基于插件的存储桶的示例云模板。

置备单区域存储桶

可以通过在云模板中对区域进行硬编码,置备单区域存储桶,如以下示例所示。

formatVersion: 1
inputs: {}
resources:
  Idem_GCP_STORAGE_BUCKET_1:
    type: Idem.GCP.STORAGE.BUCKET
    metadata:
      layoutPosition:
        - 0
        - 0
    properties:
      name: bucket-test
      account: gcp-account
      location: us-central1

(可选)可以使用 enum 属性构建区域列表,供用户进行选择。在此示例中,还为存储桶启用版本控制,使用存储桶标签,并允许用户选择存储类。

formatVersion: 1
inputs:
  region:
    type: string
    title: Region
    description: Google region
    # This enumeration is used to simplify the choosing of a region. You can just hardcode the region in the "region" section.
    enum:
      - europe-central2
      - europe-north1
      - europe-southwest1
      - europe-west1
      - europe-west2
      - europe-west3
      - europe-west4
      - europe-west6
      - europe-west8
      - europe-west9
      - europe-west12
  loc:
    type: string
    title: Location label
  bucket:
    type: string
    title: Bucket name
  storage_class:
    type: string
    title: Storage class
    enum:
      - STANDARD
      - NEARLINE
      - COLDLINE
      - ARCHIVE
  versioning:
    type: string
    title: Enable versioning
    enum:
      - 'Yes'
      - 'No'
resources:
  Idem_GCP_STORAGE_BUCKET_1:
    type: Idem.GCP.STORAGE.BUCKET
    properties:
      name: ${input.bucket}
      account: gcp-account
      labels:
        location: ${input.loc}
      location: ${input.region}
      storage_class: ${input.storage_class}
      versioning:
        enabled: ${input.versioning=="Yes"?true:false}

置备双区域存储桶

以下云模板展示了如何创建双区域存储桶。要使用此模板,请完成以下步骤:
  1. 创建一个 GCP 云帐户,该帐户至少具有两个云区域,且这些云区域对应于将部署存储桶的区域。在此示例中,区域为 europe-central2 和 europe-north1。
  2. 创建新项目并添加云区域。
  3. 使用功能标记对区域进行标记。在此示例中,对于 europe-central2,标记为 location:eu1;对于 europe-north1,标记为 location:eu2
  4. 部署该蓝图。
inputs: {}
resources:
  Idem_GCP_STORAGE_BUCKET_1:
    type: Idem.GCP.STORAGE.BUCKET
    metadata:
      layoutPosition:
        - 0
        - 1
    properties:
      name: bucket-dual-region-idem
      account: ${resource.Allocations_Compute_1.selectedCloudAccount.name}
      labels:
        a: b
        c: d
      custom_placement_config:
        data_locations: ${[resource.Allocations_Compute_1.selectedRegion.name, resource.Allocations_Compute_2.selectedRegion.name]}
      location: EU
  Allocations_Compute_1:
    type: Allocations.Compute
    metadata:
      layoutPosition:
        - 1
        - 0
    properties:
      groupId: 1
      constraints:
        - tag: location:eu1
  Allocations_Compute_2:
    type: Allocations.Compute
    metadata:
      layoutPosition:
        - 1
        - 2
    properties:
      groupId: 2
      constraints:
        - tag: location:eu2
注: 如果需要移除存储桶标签,请将标签的值更改为 null,然后重新部署模板。可以在 Google Cloud 控制台中验证是否已移除标签。

置备多区域存储桶

以下云模板展示了如何创建多区域存储桶。默认情况下,存储桶是多区域,包括位于美国位置的区域。
formatVersion: 1
inputs: {}
resources:
  Idem_GCP_STORAGE_BUCKET_1:
    type: Idem.GCP.STORAGE.BUCKET
    metadata:
      layoutPosition:
        - 0
        - 0
    properties:
      name: bucket-test-1
      account: gcp-account
以下云模板展示了如何创建加密多区域存储桶。
formatVersion: 1
inputs: {}
resources:
  Idem_GCP_STORAGE_BUCKET_1:
    type: Idem.GCP.STORAGE.BUCKET
    metadata:
      layoutPosition:
        - 0
        - 0
    properties:
      name: bucket-test-0
      account: gcp-account
      labels:
        a: b
        c: d
      encryption:
        default_kms_key_name: projects/gcp-account/locations/us/keyRings/gcp-test-1/cryptoKeys/key-2
如果要创建公共访问受限且通过 CMEK 加密的存储桶,需要满足一些必备条件,如以下链接中所述: https://cloud.google.com/storage/docs/encryption/using-customer-managed-keys
注: 客户管理的加密密钥必须与存储桶位于同一区域中。