【问题标题】:Terragrunt ignores newly added outputs in a projectTerragrunt 忽略项目中新添加的输出
【发布时间】:2022-05-15 23:12:21
【问题描述】:

我继承了一个 terraform 项目,该项目设置为部署到 AWS 上的 Elastic Container Service。

到目前为止,我非常喜欢使用它,并且尽管对 terraform 还很陌生,但我还是设法改变了一些东西。

我们的项目使用 terragrunt 来调整环境,我之前对文件进行了更改以添加特定于环境的设置,并且效果很好。

但是,我尝试添加一个全新的闪亮模块并且... terragrunt 讨厌它。

这是我尝试添加的代码:

terraform {
  source = "${path_relative_from_include()}/../modules//auto_scaling"
}

dependency "analytics_cluster" {
  config_path = "../analytics_cluster"
}

dependency "analytics_app" {
  config_path = "../analytics_app"
}

include {
  path = find_in_parent_folders()
}

inputs = {
  ecs_cluster_name         = dependency.analytics_cluster.outputs.name
  ecs_app_service_name     = dependency.analytics_app.outputs.app_service_name
  ecs_sidecar_service_name = dependency.analytics_app.outputs.sidecar_service_name

}

dependencies {
  paths = [
    "../analytics_cluster",
    "../analytics_app",
  ]
}

我得到的错误是:

terragrunt.hcl:19,62-79: Unsupported attribute; This object does not have an attribute named "app_service_name"., and 1 other diagnostic(s)

这是我添加到我已设置依赖关系的模块的输出中的变量。

这是输出的样子:

# output "service_name" {
#   value = module.analytics_app.service_name
# }

output "app_service_name" {
  value = module.analytics_app.app_service
}

output "sidecar_service_name" {
  value = module.analytics_app.sidecar_service
}

最奇怪的是,如果我将 .hcl 文件更改为注释掉的输出,如下所示:

inputs = {
  ecs_cluster_name         = dependency.analytics_cluster.outputs.name
  ecs_app_service_name     = dependency.analytics_app.outputs.service_name

}

那么这是一个有效的输入,尽管 service_name 现在已被注释掉。

为什么没有拾取新的输出变量?为什么我删除的旧变量仍然存在?

【问题讨论】:

    标签: terraform terragrunt


    【解决方案1】:

    我的猜测是,您只选择了以前应用的模块的outputs。这是因为当一个模块被应用时,它的内容(连同一个outputs.tf 定义)是在.terragrunt-cache 目录中创建的。

    当您添加一个新变量但不应用它时,该文件也不会重新生成,因此缺少属性。

    尝试在依赖项上运行 tg apply,然后在目标模块上运行 tg init

    当我尝试 run-all apply 在具有依赖关系的新存储库上时遇到了这个问题。 Terragrunt 说依赖项不存在输出,但这也是因为尚未应用依赖项模块。在我手动应用它们之后 - 它起作用了。

    【讨论】:

      猜你喜欢
      • 2019-11-19
      • 1970-01-01
      • 2013-06-21
      • 2014-02-05
      • 2012-04-23
      • 2020-04-04
      • 1970-01-01
      • 2017-01-24
      • 1970-01-01
      相关资源
      最近更新 更多