solution/networking/multi-account-multi-vpc/network/main.tf (36 lines of code) (raw):

provider "alicloud" { } provider "alicloud" { alias = "memberprovider" } # 创建企业专有网络VPC resource "alicloud_vpc" "vpc_business" { provider = alicloud.memberprovider name = var.vpc.vpc_name cidr_block = var.vpc.cidr_block } # 创建业务项目网络 module "network_project" { providers = { alicloud = alicloud.memberprovider } source = "./project" for_each = var.vpc.projects project_name = each.key vpc_id = alicloud_vpc.vpc_business.id vswitches = each.value.vswitches network_acl_enabled = each.value.network_acl_enabled cen_id = var.cen_id } # 跨账号加载vpc到cen resource "alicloud_cen_instance_grant" "cen_instance_grant" { provider = alicloud.memberprovider cen_id = var.cen_id child_instance_id = alicloud_vpc.vpc_business.id cen_owner_id = var.share_service_account_id } resource "alicloud_cen_instance_attachment" "cen_shared_service_vpc_attachment" { instance_id = var.cen_id child_instance_id = alicloud_vpc.vpc_business.id child_instance_region_id = var.region child_instance_type = "VPC" child_instance_owner_id = var.member_account_id depends_on = [alicloud_cen_instance_grant.cen_instance_grant] }