首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用变量创建资源

问使用变量创建资源
EN

Stack Overflow用户
提问于 2020-03-20 00:33:14
回答 1查看 54关注 0票数 0

是否可以将资源名称替换为变量而不是

代码语言:javascript
复制
resource "aws_instance" "example" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
}

我想做这个

代码语言:javascript
复制
resource "aws_instance" "$my_box" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
}

$my_box将在我的vars.tf文件中定义

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-20 00:54:23

不可能使用动态资源名称。

标识符

参数名、块类型名称和大多数特定于Terraform的构造的名称,如resources、input变量等。都是标识符。标识符可以包含字母、数字、下划线(_)和连字符(-)。标识符的第一个字符不能是数字,以避免与文字数字的歧义。对于完整的标识符规则,Terraform实现了Unicode标识符语法,扩展到包含ASCII连字符-。

资源名称是编程语言中类似于函数名的标识符,据我所知,它是静态的。

如果有python函数或C函数,我们就不会期望函数名是动态的。

代码语言:javascript
复制
def function(arg): 
   ...


void main(void){
   ...
}

虽然Python等语言可以将函数作为对象传递并将其设置为变量,但HCL并不是这样的语言。

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

https://stackoverflow.com/questions/60766996

复制
相关文章

相似问题

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