【发布时间】:2021-06-07 15:17:55
【问题描述】:
我正在为 AMI 设置标签。我有 ubuntu 和 EKS AMI,其中 EKS AMI 需要设置其他操作系统不需要的 k8s 版本、containerd 等。我已经声明了所有特定于 EKS 的变量,默认为 null,假设它们在我运行 for_each 时会被跳过,但它会出错。这是代码和错误。
locals {
tags = {
docker_version = var.docker_version
kubernetes = var.k8s_version
cni_plugin_version = var.cni_plugin_version
containerd_version = var.containerd_version
target = var.target
source_ami_id = var.source_ami_id
Release = var.ami_release-version
Description = var.ami_description
Name = var.ami_name
Creator = var.creator
}
data "aws_ami" "ami_image" {
most_recent = true
owners = ["xxxxxxxx"]
name_regex = var.ami_regex
}
output "ami_id" {
value = data.aws_ami.ami_image.id
}
output "ami_arn" {
value = data.aws_ami.ami_image.arn
}
output "ami_name" {
value = data.aws_ami.ami_image.name
}
resource "aws_ec2_tag" "ami-taggging" {
resource_id = data.aws_ami.ami_image.id
for_each = local.tags
key = each.key
value = each.value
}
值为空时出错:
Error: Missing required argument
on main.tf line 41, in resource "aws_ec2_tag" "ami-tagging":
41: value = each.value
如果值为空,有没有办法跳过或优雅地移动到下一条记录。
【问题讨论】:
标签: amazon-web-services terraform terraform-provider-aws