因此,当您在AWS中创建全局加速器时,尽管您没有明确指定创建安全组,但仍然会自动创建一个安全组,因为它是全局加速器的依赖项。当我们执行破坏地球的命令时,安全小组还在那里。这是一个已知的问题,HashiCorp建议手动删除GA。为了避免这种情况,我考虑运行这样的代码:
resource "aws_vpc" "vpc" {
provisioner "local-exec" {
when = destroy
command = "aws ec2 delete-security-group --group-id $(aws ec2 describe-security-groups --filter Name=group-name,Values='GlobalAccelerator' Name=vpc-id,Values=${self.id} --region ${var.region} --output text | awk '{print $5}') --region ${var.region}"
}
cidr_block = local.cidr_block
.
.
.
}
aws cli命令有效。我已经测试过了。我不确定如何传递区域变量。var.region
失败了,因为它不是一个自我论证。我也无法添加区域块如下:region = var.region
,因为区域不是一个受支持的参数。如何通过region var来运行cli命令?
我建议为全局加速器显式创建安全组&避免包装器脚本的开销或尝试删除自动创建的安全组,除非有特定的原因不这样做。这样terraform就会破坏安全组。