当它是存储帐户连接字符串时,如何使用输出变量?

Posted

技术标签:

【中文标题】当它是存储帐户连接字符串时,如何使用输出变量?【英文标题】: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 运行一样。我做错了什么?

更新

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于当它是存储帐户连接字符串时,如何使用输出变量?的主要内容,如果未能解决你的问题,请参考以下文章

为啥当它是静态连接时,Web 套接字的延迟会有所不同?

oracle在写存储过程时怎样将变量和字符串进行连接

当 Xampp 连接时,我的 CSS 不会显示为好像它没有链接到我的 index.php,当它是

存储连接字符串

Azure 门户中的 Azure 存储帐户连接字符串在哪里?

如何获取 Azure 存储帐户密钥