首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于计数的Terraform午餐EC2条件

基于计数的Terraform午餐EC2条件
EN

Stack Overflow用户
提问于 2021-07-13 14:16:05
回答 1查看 314关注 0票数 1

基于条件(“单目标”)尝试午餐1或2个实例

错误信息获取:

代码语言:javascript
复制
132:   target_id        = var.ec2-2
var.ec2-2 is empty tuple
Inappropriate value for attribute "target_id": string required.

使用该变量:

代码语言:javascript
复制
resource "aws_lb_target_group_attachment" "b" {
  target_id        = var.ec2-2

}

产出:

代码语言:javascript
复制
output "ec2-2_ot" {
 value = aws_instance.ec2V2[*].id
 description = "the value of the network module ec2-2 id"
}

变量:

代码语言:javascript
复制
variable "single-target" {
  type=bool
  default=false
}

main.tf:

代码语言:javascript
复制
module "network_module" {
   ec2-2 = module.compute_module.ec2-2_ot
}

ec2发射:

代码语言:javascript
复制
resource "aws_instance" "ec2V2" {
  count = var.single-target ? 0 : 1
  ami                         = var.ec2_ami
  instance_type               = var.ec2_type
  associate_public_ip_address = true
  key_name = var.key_pair
  vpc_security_group_ids = [ var.vpc-sg ]
  subnet_id = var.subnet-2
  user_data = file("PATH/user-data.sh")
          
  tags = {
    Name = var.ec2-2_name
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-13 14:31:18

由于计数已经设置为要创建的资源,因此需要通过本terraform文档中提到的Splat表达访问返回结果列表。

如果您需要从结果列表中选择特定的索引,那么您可以使用元素函数这样做。

因此,在您的示例中,如果需要输出EC2 id,则如下所示。

代码语言:javascript
复制
output "thisisoutput" {
       value = aws_instance.ec2V2[*].arn
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68364139

复制
相关文章

相似问题

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