可以扩展 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 pipeline config
时请求该值,azd
将其保存为管道机密,并在管道运行时自动检索该值。
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
以更新管道配置。