我已将Azure存储密钥保存在密钥库中,并且我想使用Azure cli检索密钥并将其设置为env。在我运行Terraform脚本之前,在cmd窗口中添加了变量。
下面列出的命令不起作用,谁能告诉我需要更改什么?
set ARM_ACCESS_KEY=$(az keyvault secret show --name terraform-backend-key --vault-name myKeyVault)
初始化错误
Main.tf
variable "count" {}
variable "prefix" {
default="RG"
}
terraform {
backend "azurerm" {
container_name = "new"
storage_account_name = "mfarg"
key = "terraform.tfstate"
}}
resource "azurerm_resource_group" "test" {
count ="${var.count}"
name = "${var.prefix}-${count.index}"
location = "West US 2"
}
命令提示符输出
答案 0 :(得分:2)
要在Windows中设置环境变量,建议您使用PowerShell命令来实现它。在PowerShell中,您可以这样做:
$env:ACCESS_KEY=$(az keyvault secret show -n terraform-backend-key --vault-name myKeyVault --query value -o tsv)
此外,在您的CLI命令中,您无法直接显示机密,它会输出整个机密,而不仅仅是您想要的访问密钥。查看两个命令之间的区别。
答案 1 :(得分:0)
一个较晚的答案,但对仍然存在相同问题的人可能有用。 此方法将在Windows命令提示符cmd中工作。
For /f %%i in ('az keyvault secret show --vault-name "Your-KeyVault-Name" --name "Your-Secret-Name" --query "value"') do set "password=%%i"
现在,如果您只运行“ echo%password%”,您将看到您的秘密值。 请记住,az命令必须在''之间,例如'az keyvault secret等。