# 阿里云北京区域主配置文件 terraform { required_providers { alicloud = { source = "aliyun/alicloud" version = "1.260.1" } } } provider "alicloud" { access_key = var.access_key secret_key = var.secret_key region = var.region } # 创建北京可用区I的交换机 resource "alicloud_vswitch" "bj_i" { vpc_id = var.vpc_id cidr_block = "10.0.1.0/24" # 使用不同的网段 zone_id = "cn-beijing-i" # 北京可用区I vswitch_name = "${var.project_name}-${var.environment}-bj-i-supabase" tags = merge(var.common_tags, { Name = "${var.project_name}-${var.environment}-bj-i-supabase" Purpose = "Supabase deployment" }) } # 获取所有 RDS 实例(包括所有状态) data "alicloud_db_instances" "all" { # 不限制状态,获取所有实例 } # 注意:alicloud_db_instance 是资源类型,不是数据源 # 我们只使用 alicloud_db_instances 数据源来获取实例列表 # 检查 VPC 和交换机使用情况 data "alicloud_vpcs" "all" {} data "alicloud_vswitches" "all" {} # 输出新创建的交换机信息 output "new_vswitch_id" { value = alicloud_vswitch.bj_i.id description = "新创建的北京可用区I交换机ID" } output "new_vswitch_name" { value = alicloud_vswitch.bj_i.vswitch_name description = "新创建的北京可用区I交换机名称" } # 输出所有数据库实例状态 output "db_instances_status" { value = { for instance in data.alicloud_db_instances.all.instances : instance.id => { name = instance.db_instance_description status = instance.db_instance_status engine = instance.engine engine_version = instance.engine_version create_time = instance.create_time expire_time = instance.expire_time vpc_id = instance.vpc_id vswitch_id = instance.vswitch_id } } description = "所有数据库实例状态" } # 检查是否有正在创建的实例 output "creating_instances" { value = [ for instance in data.alicloud_db_instances.all.instances : { id = instance.id name = instance.db_instance_description status = instance.db_instance_status create_time = instance.create_time } if contains(["Creating", "DBInstanceClassChanging", "Transing", "Pending"], instance.db_instance_status) ] description = "正在创建的数据库实例" } # 输出所有实例状态(用于调试) output "all_instances_debug" { value = [ for instance in data.alicloud_db_instances.all.instances : { id = instance.id name = instance.db_instance_description status = instance.db_instance_status create_time = instance.create_time engine = instance.engine } ] description = "所有数据库实例状态(调试用)" } # 输出网络使用情况 output "network_usage" { value = { vpcs = { for vpc in data.alicloud_vpcs.all.vpcs : vpc.id => { name = vpc.vpc_name cidr = vpc.cidr_block status = vpc.status } } vswitches = { for vswitch in data.alicloud_vswitches.all.vswitches : vswitch.id => { name = vswitch.vswitch_name vpc_id = vswitch.vpc_id zone_id = vswitch.zone_id status = vswitch.status } } } description = "网络资源使用情况" }