В ходе создания инфраструктуры администратор облачных служб может использовать подключаемый модуль Google Cloud Platform (GCP) для подготовки контейнеров хранилищ на основе подключаемого модуля. Для предоставления логики выделения своим контейнерам хранилищ также можно использовать помощники выделения. Поддержка контейнеров хранилищ на основе подключаемого модуля предусматривает создание контейнеров хранилищ для двух или более регионов, а также ограниченный общий доступ и шифрование.

Дополнительные сведения о подключаемых модулях и выделении в VMware Aria Automation см. в разделе Проекты и развертывания на основе подключаемого модуля в Automation Assembler

Свойства контейнера хранилища

Для ресурсов контейнера хранилища на основе подключаемого модуля обязательными являются следующие свойства. Полный список свойств экземпляра см. в документации по Google Cloud REST. Свойства ресурсов в документации по GCP записываются с помощью стиля camelCase, в то время как свойства ресурса в Automation Assembler записываются в стиле snake case.

Свойство Описание
name Имя контейнера хранилища. Имя, связанное с контейнером, нельзя изменить после создания, поэтому оно должно быть уникальным и удобным для восприятия пользователем.

Требования к именованию контейнеров см. в разделе Имена контейнеров в документации по Google Cloud.

account Облачная учетная запись GCP для регионов учетной записи, в которых ваша рабочая группа развертывает облачные шаблоны.

Дополнительные сведения см. в разделе Создание облачной учетной записи Google Cloud Platform в VMware Aria Automation.

В следующем разделе приведены примеры облачных шаблонов для подготовки контейнеров хранилищ на основе подключаемого модуля в 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. Отметьте зоны с помощью тегов возможностей. В данном примере используются теги location:eu1 для europe-central2 и location:eu2 для europe-north1.
  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.
Примечание: Клиентский ключ шифрования должен находиться в том же регионе, что и контейнер хранилища.