【问题标题】:How to use default AWS VPC resources when created via Terraform通过 Terraform 创建时如何使用默认 AWS VPC 资源
【发布时间】:2015-05-18 02:57:13
【问题描述】:

尝试学习将 Terraform (v 0.3.7) 与 Amazon Web Services 结合使用。

当我通过以下方式使用 Terraform 创建 VPC 时:

resource "aws_vpc" "test-vpc" {
  cidr_block = "${var.vpc_cidr}"
  enable_dns_hostnames = true
  tags {
    Name = "test-vpc"
  }
}

VPC 将有一个主路由表和一个自动创建的“默认”安全组(我假设由 AWS,而不是 Terraform);这些可以通过创建的 VPC 上的属性来识别:main_route_table_iddefault_security_group_id

在关注this tutorial 时,它谈到了创建您自己的默认安全组和路由表 - 它没有提及将要创建的默认路由表(即使您创建自己的路由表,“主”路由表也是由default 将保持原样,与任何子网或任何东西无关)。

我们不应该使用通过 VPC 创建的默认资源吗?尤其是路由表,不使用“主”路由表会不会有什么影响?

如果我应该使用默认资源,我该如何使用 Terraform?

我在 Terraform 文档中看不到有关这些默认资源的任何内容,如果我尝试覆盖它们(例如,通过告诉 Terraform 创建一个名称为 default 的安全组,我会收到错误消息)。

【问题讨论】:

    标签: amazon-web-services cloud terraform


    【解决方案1】:

    AWS 创建这些默认路由表和 sec 组。如果您不使用它们(我知道我们不使用),它们可以被删除。 如果您需要 Terraform 创建默认的 sec 组,则 Terraform 会引发错误,因为该组可能已经存在,或者该 sec 组名称已保留。 您可以创建一个新资源“aws_security_group”(https://terraform.io/docs/providers/aws/r/security_group.html)并在资源上列出一个依赖项

    depends_on = ["aws_instance.instance-name-from-resource"]

    对于该实例,因此将首先创建 sec 组,然后将 sec 组分配给具有“security_groups”的实例

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-10
      • 1970-01-01
      • 2018-02-08
      • 1970-01-01
      • 2020-11-07
      • 2021-12-14
      • 2019-05-19
      • 1970-01-01
      相关资源
      最近更新 更多