您如何在应用程序代码中引用动态 terraform 输出?

Posted

技术标签:

【中文标题】您如何在应用程序代码中引用动态 terraform 输出?【英文标题】:How do you reference a dynamic terraform output in application code? 【发布时间】:2021-06-07 16:06:19 【问题描述】:

我正在使用 terraform 创建一个 dynamodb 表,该表的 name 属性看起来像这样......

name = "$var.service-$var.environment-Item-table"

根据环境,名称可能是items-service-dev-Item-tableitems-service-prod-Item-table。在我的应用程序代码 (JS) 中,我显然需要知道表的名称才能与之交互,但动态特性使它变得更加棘手。

我考虑过沿着 terraform 和应用程序代码引用的环境变量的路线,但它看起来很混乱。处理此类问题的最佳做法是什么?

【问题讨论】:

是的,环境变量就是我要走的路,或者将您需要的东西保存在参数存储中:docs.aws.amazon.com/systems-manager/latest/userguide/… 【参考方案1】:

terraform 是否也在部署您的应用程序代码?通常你会让 Terraform 将该值作为环境变量注入它部署的应用程序中。

如果不可能,请将值存储在AWS Parameter Store。

【讨论】:

以上是关于您如何在应用程序代码中引用动态 terraform 输出?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Terraform Grafana 提供程序动态地将仪表板放在正确的文件夹中

在 Terraform 中,如何在包含的模块中引用根模块中创建的组件

如何在 terraform 路由表中引用 AWS 本地前缀列表?

在 terraform 中创建动态块

如何解决错误:Terraform 中的“不得引用参数名称”?

如果 Terraform 重新创建在另一个状态中引用的资源怎么办?