Google 建议删除并创建您自己的产品 VPC
此资源管理默认 VPC:https ://www.terraform.io/docs/providers/aws/r/default_vpc.html
但我想将不同的 VPC 设置为默认值并删除自动创建的 VPC。
这怎么可能?
Google 建议删除并创建您自己的产品 VPC
此资源管理默认 VPC:https ://www.terraform.io/docs/providers/aws/r/default_vpc.html
但我想将不同的 VPC 设置为默认值并删除自动创建的 VPC。
这怎么可能?
该default
网络没有任何使其成为默认网络的特定配置。它只是一个始终与新项目一起创建的网络,并且每当未指定网络时(例如,在部署 GAE flex 应用程序时),使用的网络将是名称为 的网络default
。使用 Terraform 创建项目时,可以指定auto_network_creation = "false"
.
但是,这不会阻止默认网络的创建,它只会在项目完全创建之前将其删除。这意味着,在 Terraform 创建期间,无法创建另一个名为default
. 这必须在创建原始默认网络之后完成,因此,在项目创建之后。
您可以尝试使用本教程使用 Terraform 创建项目。下一个片段是教程的一部分,我在其中包含了删除项目创建时的默认网络的行。
variable "project_name" {}
variable "billing_account" {}
variable "org_id" {}
variable "region" {}
provider "google" {
region = "${var.region}"
}
resource "random_id" "id" {
byte_length = 4
prefix = "${var.project_name}-"
}
resource "google_project" "project" {
name = "${var.project_name}"
project_id = "${random_id.id.hex}"
billing_account = "${var.billing_account}"
org_id = "${var.org_id}"
auto_create_network = "false" //This is supposed to delete default network on project creation
}
resource "google_project_services" "project" {
project = "${google_project.project.project_id}"
services = [
"compute.googleapis.com"
]
}
output "project_id" {
value = "${google_project.project.project_id}"
}
尽管如此,我自己尝试过,默认网络仍然存在。
在 Terraform 中,您描述了配置的所需状态,不可能将“销毁请求”隐式发送到不受 Terraform 管理的资源。
但是,您可以先尝试导入它,然后它将由 Terraform 管理,并且由于您未将其包含在 *.tf 文件中,因此应在terraform apply
步骤中删除默认子网。
设置属性 auto_create_network = "false" 并提及结算帐户 ID,同时按照以下代码段创建 GCP 项目,可确保删除默认网络。
resource "google_project" "project" {
name = "test"
project_id = "test-523"
billing_account = "xxxxx"
auto_create_network = "false"
}