今天,我使用 terraform over azure 来管理无服务器应用程序基础架构。我在 win10 上安装了一个 ubuntu WSL,以避免环境变量出现问题。
- Ubuntu 20.04.02 LTS(在 win10 上通过 wsl)
- Terraform v0.14.7
- Azurerm v2.56.0
- 天蓝色 cli 2.23
在 azure 上,我们部署了 app_service_plan、function_app、key_vault、storage_account 等
Terraform init 运行良好。Terraform 计划告诉我在 function_app 中要做一些更改:
~ resource "azurerm_function_app" "myfunction" {
~ app_settings {
~ "AzureWebJobsStorage" = "[...]Key2[...]" -> "[...]Key1[...]" #(obviusly, I won't show key1 and key2)
}
}
如果我运行 terraform apply,此 access_key 永远不会更改,并且 terraform plan 命令再次显示需要进行更改。
在 terraform 文件中搜索我找到了特定的 function_app.tf 文件,在其中我有这个:
app_settings {
[...]
AzureWebJobsStorage = azurerm_storage_account.mystorage.primary_connection_string
[...]
}
使用 terraform 控制台命令,我搜索了 azurerm_storage_account.mystorage 的状态数据,发现:
[...]
"primary_access_key" = "key2"
"primary_connection_string" = "[...]key2[...]"
[...]
"secondary_access_key" = "Key1"
"secondary_connection_string" = "[...]key1[...]"
[...]
现在的问题是:为什么主键(在 terraform 状态下)是 Key2(在 azure 门户上),而辅助键是 Key1?它在哪里配置,我该如何更改?(我在存储帐户文件(stacc.tf)中搜索了它,但没有对此进行任何配置......也许我必须在这里指定哪个键是主键?)