2

尝试学习将 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

在遵循本教程时,它讨论了创建您自己的默认安全组和路由表 - 它没有提及将要创建的默认安全组(即使您创建自己的路由表,默认创建的“主要”路由表也将保留坐在那里,没有子网或任何东西)。

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

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

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

4

1 回答 1

2

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”的实例

于 2015-07-01T13:45:20.760 回答