【问题标题】:How can you use an output variable when it is a storage account connection string?当它是存储帐户连接字符串时,如何使用输出变量?
【发布时间】:2021-09-05 22:37:56
【问题描述】:

我在一个版本中有一个 powershell 脚本,它获取存储帐户连接字符串并创建一个输出变量。当我尝试在下一个 powershell 脚本中使用该输出变量(只是将其添加到密钥库)时,它会引发错误,指出“术语 'AccountName=' 未被识别为 cmdlet 的名称......”。

这是用于生成 connectionString 变量的脚本:

$storageAccKey = (az storage account keys list -g $(ResourceGroup) -n $(StorageAccount) --query [0].value)
$storageAccConn = -join("DefaultEndpointsProtocol=https;AccountName=","$(StorageAccount)",";AccountKey=",$storageAccKey,";EndpointSuffix=core.windows.net")

Write-Host "##vso[task.setvariable variable=connectionString;isOutput=true]$storageAccConn"

我证实这会产生我想要的价值。我已将“输出变量”>“参考名称”设置为“ConnectionVariable”,在下一个脚本中,我将“脚本参数”设置为“$(ConnectionVariable.connectionString)”并尝试使用如下值:

az keyvault secret set --vault-name $(KeyVaultName) --name $(MyConnectionString) --value "$(ConnectionVariable.connectionString)"

但这会引发上述错误。就像它试图将“$(ConnectionVariable.connectionString)”作为 cmdlet 运行一样。我做错了什么?

更新

我找到了一种解决方法,但我仍然想知道这个问题。在这种情况下,我能够将存储帐户密钥作为输出参数传递,下一个任务使用输出参数构造连接字符串。

【问题讨论】:

    标签: powershell azure-devops


    【解决方案1】:

    我找到了解决方法。我能够将存储帐户密钥作为输出参数传递,下一个任务使用输出参数构造连接字符串。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-20
      • 1970-01-01
      • 2015-12-02
      • 1970-01-01
      • 1970-01-01
      • 2021-11-01
      • 2021-05-31
      • 1970-01-01
      相关资源
      最近更新 更多