Поделиться через


Расширенные функции и конфигурации конвейера

Вы можете расширить azd pipeline config команду для поддержки расширенных сценариев и пользовательских требований, как описано в следующих разделах.

Пользовательские секреты и переменные

По умолчанию azd задает основные переменные и секреты для конвейера. Например, при запуске azd pipeline configон создает такие переменные, как subscription id, environment nameи region. Эти переменные упоминаются в определении пайплайна:

env:
   AZURE_CLIENT_ID: ${{ vars.AZURE_CLIENT_ID }}
   AZURE_TENANT_ID: ${{ vars.AZURE_TENANT_ID }}
   AZURE_SUBSCRIPTION_ID: ${{ vars.AZURE_SUBSCRIPTION_ID }}
   AZURE_ENV_NAME: ${{ vars.AZURE_ENV_NAME }}
   AZURE_LOCATION: ${{ vars.AZURE_LOCATION }}

При запуске azd конвейера извлекает эти значения из среды и сопоставляет их с переменными и секретами конвейера. В зависимости от шаблона может потребоваться управлять дополнительными параметрами с помощью переменных среды. Например, можно задать KEY_VAULT_NAME переменную среды, чтобы определить имя ресурса Key Vault в инфраструктуре.

Чтобы поддерживать пользовательские переменные и секреты, определите их в файле шаблона azure.yaml . Рассмотрим пример.

pipeline:
  variables:
    - KEY_VAULT_NAME
    - STORAGE_NAME
  secrets:
    - CONNECTION_STRING

В этой конфигурации система проверяет, azd, имеют ли какие-либо из перечисленных переменных или секретов значение в среде. Затем он создает соответствующую переменную или секрет в конвейере с помощью значения среды.

Вы можете ссылаться на эти переменные и секреты в azure-dev.yaml определении конвейера:

- name: Provision Infrastructure
   run: azd provision --no-prompt
   env:
      KEY_VAULT_NAME: ${{ variables.KEY_VAULT_NAME }}
      STORAGE_NAME: ${{ variables.STORAGE_NAME }}
      CONNECTION_STRING: ${{ secrets.CONNECTION_STRING }}

Замечание

После обновления списка секретов или переменных в azure.yamlзапустите azd pipeline config повторно, чтобы обновить значения конвейера.

Параметры инфраструктуры

Рассмотрим следующий пример Bicep:

@secure()
param BlobStorageConnection string

BlobStorageConnection Если параметр не имеет значения по умолчанию, azd запрашивает значение во время установки. Однако во время выполнения CI/CD не существует интерактивного запроса. Вместо этого azd запрашивает значение при запуске azd pipeline config, сохраняет его в виде секрета конвейера и автоматически извлекает его при запуске конвейера.

azd использует секрет конвейера, названный AZD_INITIAL_ENVIRONMENT_CONFIG, для хранения и предоставления требуемых значений параметров. Ссылка на этот секрет в определении конвейера:

- name: Provision Infrastructure
   run: azd provision --no-prompt
   env:
      AZD_INITIAL_ENVIRONMENT_CONFIG: ${{ secrets.AZD_INITIAL_ENVIRONMENT_CONFIG }}

Когда конвейер azd запускается, он использует секрет для предоставления значений параметров, устраняя необходимость в интерактивном вводе.

Замечание

При добавлении нового параметра выполните повторное выполнение azd pipeline config , чтобы обновить конфигурацию конвейера.