首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Terraform 0.11的Terraform未引用资源

Terraform 0.11的Terraform未引用资源
EN

Stack Overflow用户
提问于 2019-09-07 23:12:32
回答 1查看 360关注 0票数 1

我使用terraform 0.11作为terraform-aws-provider的自定义模块实现。在模块内部,有许多未引用的资源值赋值,这让我感到困惑,因为它们不起作用。

这是我正在使用的示例模块代码

代码语言:javascript
复制
resource "aws_iam_policy" "example" {
  name   = example_policy
  policy = data.aws_iam_policy_document.example.json
}

在官方的terraform文档中,它是围绕要成为的值进行插值而给出的

代码语言:javascript
复制
resource "aws_iam_policy" "example" {
  name   = "example_policy"
  policy = "${data.aws_iam_policy_document.example.json}"
}

来自:https://www.terraform.io/docs/providers/aws/d/iam_policy_document.html

当我尝试使用terraform get时,出现了以下错误消息:Unknown token: 39:24 IDENT data.aws_iam_policy_document.example.json,而当我尝试使用Terraform0.12时,它成功地正确获取了它。

此未引用的资源值是terraform > v0.12独有的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-08 00:56:35

是。Terraform 0.11要求所有引用看起来都像字符串插值(就像你的第二个例子一样)。Terraform0.12增加了对first-class expressions的支持,它允许你引用字符串之外的变量(就像你的第一个例子一样)。

这些文档还包括一个更新、更清晰的语法示例:

代码语言:javascript
复制
# Old 0.11 example
tags = "${merge(map("Name", "example"), var.common_tags)}"

# Updated 0.12 example
tags = merge({ Name = "example" }, var.common_tags)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57834955

复制
相关文章

相似问题

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