[英]terraform module depends_on Azure
我正在使用 terraform 在 Azure 雲中構建生產基礎架構。 我的要求如下。
應該首先提供 Azure 密鑰保管庫,因為我將從那里使用一個秘密。 但是由於 terraform 模塊不支持depend_on。 任何解決方法都將非常適用。
source = "./../modules/azurekeyvault/"
username = "${var.username}"
tags_environment = "${var.tags_environment}"
}
module "mysql" {
source = "./../modules/mysql/"
}
Azure 密鑰庫模塊。
name = "${var.lsrkeyvault}"
location = "${data.azurerm_resource_group.lsr.location}"
resource_group_name = "${data.azurerm_resource_group.lsr.name}"
enabled_for_disk_encryption = true
tenant_id = "${data.azurerm_client_config.current.tenant_id}"
sku_name = "standard
resource "azurerm_key_vault_secret" "userlist" {
count = length(var.username)
name = "${var.username[count.index]}"
value = "${bcrypt(random_string.password.result)}"
key_vault_id = "${azurerm_key_vault.kvlsr.id}"
tags = {
environment = "${var.tags_environment}"
}
}
Mysql 模塊代碼:
name = "kyv-lsr-dev"
resource_group_name = "rgroup"
}
data "azurerm_key_vault_secret" "userlist" {
name = "mylab"
key_vault_id = "${data.azurerm_key_vault.keyvault.id}"
我不知道這是否可行,但我建議嘗試幫助 TF 構建正確的依賴關系圖。 我會讓 keyvault id 在你的模塊中成為一個變量。 這樣,當您使用模塊時,您將顯式調用 keyvault,這應該會在模塊執行之前觸發它被創建。
module "mysql" {
source = "./../modules/mysql/"
keyvault_id = "${module.keyvault.id}"
}
這將需要您的 mysql 模塊將 keyvault_id 作為變量並使用它而不是數據資源。 它還需要您的 keyvault 模塊到 output 的 keyvault id。 同樣,這可能行不通,但我認為它會。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.