共用方式為


進階管線功能和組態

您可以擴充 azd pipeline config 命令以支援進階案例和自定義需求,如下列各節所述。

自訂秘密和變數

根據預設, azd 設定管線的基本變數和秘密。 例如,當您執行 azd pipeline config時,它會建立 、、 和 subscription idenvironment nameregion變數。 管線定義中會參考這些變數:

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 以更新管線組態。