1

因此,当您在 AWS 中创建全局加速器时,虽然您没有明确指定创建安全组,但仍会自动创建一个安全组,因为它是全局加速器的依赖项。当我们运行 terraform destroy 时,安全组仍然存在。这是一个已知问题,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 命令?

谢谢

4

1 回答 1

0

我建议为全局加速器显式创建安全组并避免包装脚本的开销或尝试删除自动创建的安全组,除非有特定原因不这样做?这样 terraform 将使用它破坏安全组。

于 2021-02-02T02:11:13.110 回答