通过 Terraform 创建时如何使用默认 AWS VPC 资源
How to use default AWS VPC resources when created via Terraform
尝试学习将 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 将有一个主路由 table 和一个自动创建的 "default" 安全组(我假设是 AWS,而不是 Terraform);这些可以通过创建的 VPC 上的属性来识别:main_route_table_id
和 default_security_group_id
.
虽然在 this tutorial 之后讨论了创建您自己的默认安全组和路由 table - 它没有提及将创建的默认安全组(即使您创建了自己的路由 table,默认创建的 "main" 将保持原样,不关联任何子网或任何东西)。
我们不应该使用通过 VPC 创建的默认资源吗?特别是路由table,不使用"main"路由table会不会有什么影响?
如果我应该使用默认资源,我该如何使用 Terraform 做到这一点?
我在 Terraform 文档中看不到有关这些默认资源的任何内容,如果我尝试覆盖它们(例如,通过告诉 Terraform 创建名称为 default
的安全组,我会收到错误消息) .
AWS 创建这些默认路由表和安全组。如果您不使用它们(我知道我们不使用),它们可以被删除。
如果您需要 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"
的实例
尝试学习将 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 将有一个主路由 table 和一个自动创建的 "default" 安全组(我假设是 AWS,而不是 Terraform);这些可以通过创建的 VPC 上的属性来识别:main_route_table_id
和 default_security_group_id
.
虽然在 this tutorial 之后讨论了创建您自己的默认安全组和路由 table - 它没有提及将创建的默认安全组(即使您创建了自己的路由 table,默认创建的 "main" 将保持原样,不关联任何子网或任何东西)。
我们不应该使用通过 VPC 创建的默认资源吗?特别是路由table,不使用"main"路由table会不会有什么影响?
如果我应该使用默认资源,我该如何使用 Terraform 做到这一点?
我在 Terraform 文档中看不到有关这些默认资源的任何内容,如果我尝试覆盖它们(例如,通过告诉 Terraform 创建名称为 default
的安全组,我会收到错误消息) .
AWS 创建这些默认路由表和安全组。如果您不使用它们(我知道我们不使用),它们可以被删除。 如果您需要 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"
的实例