如何在 CI YAML 脚本中通过 AzureCLI@2 在 az 容器创建中使用 --environment-variables

问题描述 投票:0回答:1

使用 AzureCLI@2,我正在努力弄清楚如何利用

--environment-variables
参数来实现
az container create
。这是我尝试过的方法,示例环境变量名为“SecretDatabase”(滚动到命令行的最右侧)。两个例子都失败了。

az container create --verbose --name $(containerGroupName) --resource-group $(acrResourceGroup) --image $(containerRegistryUrl)/$(imageRepository):$(Build.BuildId) --cpu 1.00 --memory 2.0 --registry-login-server $(containerRegistryUrl) --registry-username "$(containerRegistryName)" --registry-password "$(acrPassword)"  --location eastus --environment-variables SecretDatabase=$env:SecretDatabase

az container create --verbose --name $(containerGroupName) --resource-group $(acrResourceGroup) --image $(containerRegistryUrl)/$(imageRepository):$(Build.BuildId) --cpu 1.00 --memory 2.0 --registry-login-server $(containerRegistryUrl) --registry-username "$(containerRegistryName)" --registry-password "$(acrPassword)"  --location eastus --environment-variables SecretDatabase="$(SecretDatabase)"
azure-devops azure-pipelines azure-cli
1个回答
0
投票

我创建了一个使用您的

az container create
命令的测试管道,它对我来说没有问题。您的问题可能取决于您如何初始化
SecretDatabase
变量。

值得注意的是,在

--location
参数之前,有两个空格。不过我在我的机器上测试了一下,这两个空格并没有造成任何问题。

这是使用 AzureCLI@2 创建容器的示例 yaml 文件:

trigger: none

pool:
  vmImage: windows-latest

variables:
- name: serviceConnection
  value: "redacted"

- name: containerGroupName
  value: "redacted"

- name: acrResourceGroup
  value: "redacted"

- name: containerRegistryImage
  value: "redacted.azurecr.io/redacted:latest"

- name: containerRegistryUrl
  value: "redacted.azurecr.io"

- name: containerRegistryName
  value: "redacted"

- name: acrPassword
  value: "this should be stored in a Key Vault"

- name: SecretDatabase
  value: "Secret Database Name"

steps:

- task: AzureCLI@2
  inputs:
    azureSubscription: ${{ variables.serviceConnection }}
    scriptType: ps
    scriptLocation: inlineScript
    inlineScript: >
        az container create
        --name $(containerGroupName)
        --resource-group $(acrResourceGroup)
        --image $(containerRegistryImage)
        --cpu 1.00
        --memory 2.0
        --registry-login-server $(containerRegistryUrl)
        --registry-username "$(containerRegistryName)"
        --registry-password "$(acrPassword)"
        --location eastus
        --environment-variables SecretDatabase="$(SecretDatabase)"

这是在 Azure 中创建的容器,显示了

SecretDatabase
环境变量: click to view screenshot

© www.soinside.com 2019 - 2024. All rights reserved.