如何在terraform中实现启动模板中的instance_requirements?

问题描述 投票:0回答:1

我有一个使用 ec2 Spot 部署 ecs 的模块,在这个模块中我有几个资源 aws_autoscaling_group、aws_launch_template。

对于 aws_launch_template,我有 instance_type 属性,但我需要实例类型有多个选项,例如 t3.micro、t3a.micro 等各种系列类型。

resource "aws_launch_template" "launch_template" {
  for_each = var.ecs_clusters

  name          = "${var.prefix}-${each.value.ecs_name}-lt"
  image_id      = each.value.launch_template.image_id
  instance_requirements = ["t3a.micro", "t3.micro"]
  ....... 
  other attributes.. 



我尝试添加属性实例要求只是为了验证计划,但 terraform 无法识别它。

意外属性:这里不需要名为“instance_requirements”的属性Terraform

amazon-web-services terraform amazon-ecs
1个回答
0
投票

您的代码片段的 Terraform Sintax 是错误的。

使用instance_requirements创建启动模板的正确方法是这样的:

resource "aws_launch_template" "launch_template" {
  for_each = var.ecs_clusters

  name          = "${var.prefix}-${each.value.ecs_name}-lt"
  image_id      = each.value.launch_template.image_id
  instance_requirements {
    allowed_instance_types = ["t3.xlarge", "t3a.xlarge", ]
    memory_mib {
      min = 15000
    }
    vcpu_count {
      min = 3
    }
  }
  ....... 
  other attributes.. 

请记住,正如文档所说,

如果存在,则instance_type不能存在。

© www.soinside.com 2019 - 2024. All rights reserved.