我当前正在使用Terraform使用以下方法将AMI从一个区域复制到多个区域:
resource "aws_ami_copy" "my_ami" {
name = "my_ami-${var.region}"
source_ami_id = "${var.source_ami_id}"
source_ami_region = "${var.source_ami_region}"
}
我需要公开此AMI,我已经在网上查看,但找不到使用Terraform进行此操作的方法。
答案 0 :(得分:1)
Terraform当前没有本地方法可以执行此操作。通常,您可以使用aws_ami_launch_permission
resource使用Terraform与另一个帐户共享AMI,但这仅支持添加特定帐户,而不支持将其公开的all
组。
您始终可以使用local-exec
预配器将AWS CLI to make the AMI public插入以下内容:
resource "null_resource" "share_ami_publicly" {
provisioner "local-exec" {
command = "aws ec2 modify-image-attribute --image-id ami-12345678 --launch-permission '{\"Add\":[{\"Group\":\"all\"}]}'"
}
}
预配置程序可以附加到任何相关资源的位置(例如aws_ami
resource,如果您正在使用它来创建AMI)。