azure - 从变量中读取 Azure Key Vault 任务中的 secret 变量

标签 azure azure-devops azure-pipelines azure-keyvault azure-pipelines-yaml

我正在尝试从我的 KeyVault 中获取 secret 。 变量名称是secretVar。

像这样获取 secret :$(secretVar)工作正常,但是我想从这样的变量中检索它:

enter image description here

我一直收到找不到命令的消息,我不知道为什么这不起作用。

所以我想要提取的 secret 名称位于 bash 变量内。对于这个问题,我已经简化了问题,但在我的实际用例中,我有一个 bash for 循环,它循环访问 secret 名称,在 for 循环内,我想从 KeyVault 中提取适当的值,并使用相应的 secret 名称,如下所示:

for secretname in secrets; do
  echo $($secretname) # This should contain the value of the secret but gives command not found
done

如果有人知道会发生什么,我们非常感谢任何帮助。

提前致谢!

最佳答案

查看您正在使用的语法。

variable=secretVar

您正在使用文字值 secretVar 创建一个环境变量

然后您尝试使用 $($variable) 执行变量 $variable 的值。因此它尝试运行命令 secretVar,该命令显然不存在,并且您会收到一条错误消息。

您正在寻找的语法是

variable=$(secretVar)

就像您在脚本中的第一个 echo 命令中使用的那样。

如果您不想将变量值作为命令运行,则语法为 $variable,而不是 $($variable)

$variable 是 Bash 环境变量的语法。

$(variable) 是引用 Azure DevOps 变量的语法。

关于azure - 从变量中读取 Azure Key Vault 任务中的 secret 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65644007/

相关文章:

c# - 随机 Selenium E2e 测试因 Azure DevOps 超时而失败,但在本地和远程 Selenium 上工作(BrowserStack Automate)

azure - 如何查看运行状态并停止耐用功能

azure - Kubernetes 入口重写问题

azure - Azure管道如何从内部TFS和外部Git获取源代码?如何更新代理?

azure - 获取 Azure Devops 中正在运行的 DevOps 管道实例

azure - 如何在 Azure DevOps 中使部分成功的阶段变为失败?

azure - 是否可以在 Azure DevOps 中的 PR 中添加注释 'resolved' ?

azure - 如何使用 ARM 模板将文件从主存储库上传到文件共享?

mysql - 为什么 documentdb 查询返回未定义或空值的数据?

azure - Service Fabric 部署卡在 GetApplicationExistence 上