首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有方法引用Terraform脚本中的嵌套变量?

是否有方法引用Terraform脚本中的嵌套变量?
EN

Stack Overflow用户
提问于 2021-12-27 16:08:48
回答 2查看 254关注 0票数 0

我有一个terraform脚本,它试图引用同一资源中的属性。我需要将"azurerm_container_group.aci_caddy.fqdn“传递给容器组中的容器实例。

代码语言:javascript
复制
resource "azurerm_container_group" "aci_caddy" {
  resource_group_name = "aci_caddy"
  location            = local.location
  name                = "aci_caddy"
  os_type             = "Linux"
  dns_name_label      = "aci-caddykang"

  container {
    name   = "app"
    image  = "apptest:latest"
    cpu    = "0.5"
    memory = "0.5"
    
    environment_variables = {
      SITE_ADDRESS = "${azurerm_container_group.aci_caddy.fqdn}"
    }

  }
}

但是我收到了错误信息。

代码语言:javascript
复制
│ Error: Self-referential block
│ 
│   on aci-caddy-main.tf line 29, in resource "azurerm_container_group" "aci_caddy":
│   29:       SITE_ADDRESS = "${azurerm_container_group.aci_caddy.fqdn}"
│ 
│ Configuration for azurerm_container_group.aci_caddy may not refer to itself.

有什么办法可以做到吗?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-12-28 03:29:19

您应该能够使用您的SITE_ADDRESS导出dns_name_label。所以,不用硬编码dns_name_label。可以在Terraform中创建一个变量。

代码语言:javascript
复制
variable "dns_label" {
type = string
}

然后在容器组资源中引用此变量。

代码语言:javascript
复制
resource "azurerm_container_group" "aci_caddy" {
  resource_group_name = "aci_caddy"
  location            = local.location
  name                = "aci_caddy"
  os_type             = "Linux"
  dns_name_label      = var.dns_label

  container {
    name   = "app"
    image  = "apptest:latest"
    cpu    = "0.5"
    memory = "0.5"
    
    environment_variables = {
      SITE_ADDRESS = "${var.dns_label}-westus.azurecontainer.io"
    }

  }
}

如果您想进一步改进这一点,可以了解如何从azurerm提供程序数据源获取区域/位置。我没有暴露在天蓝色供应商,所以找不到这个很快。但我知道,FQDN是使用您的dns_name_label和.azurecontainer.io派生的。

票数 0
EN

Stack Overflow用户

发布于 2021-12-27 22:33:10

您不能在其内部引用资源:azurerm_container_group.aci_caddy.fqdn,因为它尚未创建。您必须为您的SITE_ADDRESS创建新变量或本地值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70497806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档