-DC-Beta",
power_redundancy: "N+1"
},
status: "active",
created_at: datetime(),
updated_at: datetime()
});
CREATE (az3:AZ {
id: "cn-north-1d",
name: "Beijing Zone D",
tag: {
physical_location: "Beijing-DC-Delta",
power_redundancy: "2N"
},
status: "active",
created_at: datetime(),
updated_at: datetime()
});
// Ningxia AZs
CREATE (az4:AZ {
id: "cn-northwest-1a",
name: "Ningxia Zone A",
tag: {
physical_location: "Ningxia-DC-Alpha",
power_redundancy: "N+1"
},
status: "active",
created_at: datetime(),
updated_at: datetime()
});
CREATE (az5:AZ {
id: "cn-northwest-1b",
name: "Ningxia Zone B",
tag: {
physical_location: "Ningxia-DC-Beta",
power_redundancy: "N+1"
},
status: "active",
created_at: datetime(),
updated_at: datetime()
});
CREATE (az6:AZ {
id: "cn-northwest-1c",
name: "Ningxia Zone C",
tag: {
physical_location: "Ningxia-DC-Gamma",
power_redundancy: "2N"
},
status: "active",
created_at: datetime(),
updated_at: datetime()
});
// ==========================================
// 5. 建立基础层次关系
// ==========================================
// Account -> Region 关系
MATCH (acc:Account {id: "123456789012"}), (r1:Region {id: "cn-north-1"})
CREATE (acc)-[:CONTAINS_REGION]->(r1);
MATCH (acc:Account {id: "123456789012"}), (r2:Region {id: "cn-northwest-1"})
CREATE (acc)-[:CONTAINS_REGION]->(r2);
// Region -> AZ 关系
MATCH (r1:Region {id: "cn-north-1"}), (az1:AZ {id: "cn-north-1a"})
CREATE (r1)-[:CONTAINS_AZ]->(az1);
MATCH (r1:Region {id: "cn-north-1"}), (az2:AZ {id: "cn-north-1b"})
CREATE (r1)-[:CONTAINS_AZ]->(az2);
MATCH (r1:Region {id: "cn-north-1"}), (az3:AZ {id: "cn-north-1d"})
CREATE (r1)-[:CONTAINS_AZ]->(az3);
MATCH (r2:Region {id: "cn-northwest-1"}), (az4:AZ {id: "cn-northwest-1a"})
CREATE (r2)-[:CONTAINS_AZ]->(az4);
MATCH (r2:Region {id: "cn-northwest-1"}), (az5:AZ {id: "cn-northwest-1b"})
CREATE (r2)-[:CONTAINS_AZ]->(az5);
MATCH (r2:Region {id: "cn-northwest-1"}), (az6:AZ {id: "cn-northwest-1c"})
CREATE (r2)-[:CONTAINS_AZ]->(az6);
// ==========================================
// 6. 网络资源建模 - VPC & Subnet
// ==========================================
// 创建VPC相关约束
CREATE CONSTRAINT vpc_id IF NOT EXISTS FOR (v:VPC) REQUIRE v.id IS UNIQUE;
CREATE CONSTRAINT subnet_id IF NOT EXISTS FOR (s:Subnet) REQUIRE s.id IS UNIQUE;
CREATE CONSTRAINT route_table_id IF NOT EXISTS FOR (rt:RouteTable) REQUIRE rt.id IS UNIQUE;
CREATE CONSTRAINT igw_id IF NOT EXISTS FOR (igw:InternetGateway) REQUIRE igw.id IS UNIQUE;
// 6.1 VPC 资源建模
CREATE (vpc1:VPC {
id: "vpc-12345678",
name: "production-main-vpc",
cidr: "10.0.0.0/16",
vpc_flow_logs: {
enabled: true,
log_destination_type: "s3",
log_destination: "s3://vpc-flow-logs-prod-bucket",
log_format: "${srcaddr} ${dstaddr} ${srcport} ${dstport} ${protocol} ${packets} ${bytes} ${start} ${end} ${action}",
log_status: "ACTIVE",
delivery_status: "SUCCESS"
},
dns_hostnames: true,
dns_resolution: true,
tag: {
environment: "production",
project: "core-platform",
team: "platform-engineering",
backup: "daily"
},
status: "active",
created_at: datetime(),
updated_at: datetime()
});
CREATE (vpc2:VPC {
id: "vpc-87654321",
name: "staging-vpc",
cidr: "10.1.0.0/16",
vpc_flow_logs: {
enabled: false,
log_destination_type: null,
log_destination: null,
log_format: null,
log_status: "INACTIVE",
delivery_status: null
},
dns_hostnames: true,
dns_resolution: true,
tag: {
environment: "staging",
project: "core-platform",
team: "platform-engineering",
backup: "none"
},
status: "active",
created_at: datetime(),
updated_at: datetime()
});
// 6.2 Subnet 资源建模
// Production VPC Subnets
CREATE (subnet1:Subnet {
id: "subnet-abc12345",
name: "production-web-subnet-1a",
power_redundancy: "N+1"
},
status: "active",
created_at: datetime(),
updated_at: datetime()
});
CREATE (az3:AZ {
id: "cn-north-1d",
name: "Beijing Zone D",
tag: {
physical_location: "Beijing-DC-Delta",
power_redundancy: "2N"
},
status: "active",
created_at: datetime(),
updated_at: datetime()
});
// Ningxia AZs
CREATE (az4:AZ {
id: "cn-northwest-1a",
name: "Ningxia Zone A",
tag: {
physical_location: "Ningxia-DC-Alpha",
power_redundancy: "N+1"
},
status: "active",
created_at: datetime(),
updated_at: datetime()
});
CREATE (az5:AZ {
id: "cn-northwest-1b",
name: "Ningxia Zone B",
tag: {
physical_location: "Ningxia-DC-Beta",
power_redundancy: "N+1"
},
status: "active",
created_at: datetime(),
updated_at: datetime()
});
CREATE (az6:AZ {
id: "cn-northwest-1c",
name: "Ningxia Zone C",
tag: {
physical_location: "Ningxia-DC-Gamma",
power_redundancy: "2N"
},
status: "active",
created_at: datetime(),
updated_at: datetime()
});
// ==========================================
// 5. 建立基础层次关系
// ==========================================
// Account -> Region 关系
MATCH (acc:Account {id: "123456789012"}), (r1:Region {id: "cn-north-1"})
CREATE (acc)-[:CONTAINS_REGION]->(r1);
MATCH (acc:Account {id: "123456789012"}), (r2:Region {id: "cn-northwest-1"})
CREATE (acc)-[:CONTAINS_REGION]->(r2);
// Region -> AZ 关系
MATCH (r1:Region {id: "cn-north-1"}), (az1:AZ {id: "cn-north-1a"})
CREATE (r1)-[:CONTAINS_AZ]->(az1);
MATCH (r1:Region {id: "cn-north-1"}), (az2:AZ {id: "cn-north-1b"})
CREATE (r1)-[:CONTAINS_AZ]->(az2);
MATCH (r1:Region {id: "cn-north-1"}), (az3:AZ {id: "cn-north-1d"})
CREATE (r1)-[:CONTAINS_AZ]->(az3);
MATCH (r2:Region {id: "cn-northwest-1"}), (az4:AZ {id: "cn-northwest-1a"})
CREATE (r2)-[:CONTAINS_AZ]->(az4);
MATCH (r2:Region {id: "cn-northwest-1"}), (az5:AZ {id: "cn-northwest-1b"})
CREATE (r2)-[:CONTAINS_AZ]->(az5);
MATCH (r2:Region {id: "cn-northwest-1"}), (az6:AZ {id: "cn-northwest-1c"})
CREATE (r2)-[:CONTAINS_AZ]->(az6);
// ==========================================
// 6. 网络资源建模 - VPC & Subnet
// ==========================================
// 创建VPC相关约束
CREATE CONSTRAINT vpc_id IF NOT EXISTS FOR (v:VPC) REQUIRE v.id IS UNIQUE;
CREATE CONSTRAINT subnet_id IF NOT EXISTS FOR (s:Subnet) REQUIRE s.id IS UNIQUE;
CREATE CONSTRAINT route_table_id IF NOT EXISTS FOR (rt:RouteTable) REQUIRE rt.id IS UNIQUE;
CREATE CONSTRAINT igw_id IF NOT EXISTS FOR (igw:InternetGateway) REQUIRE igw.id IS UNIQUE;
// 6.1 VPC 资源建模
CREATE (vpc1:VPC {
id: "vpc-12345678",
name: "production-main-vpc",
cidr: "10.0.0.0/16",
vpc_flow_logs: {
enabled: true,
log_destination_type: "s3",
log_destination: "s3://vpc-flow-logs-prod-bucket",
log_format: "${srcaddr} ${dstaddr} ${srcport} ${dstport} ${protocol} ${packets} ${bytes} ${start} ${end} ${action}",
log_status: "ACTIVE",
delivery_status: "SUCCESS"
},
dns_hostnames: true,
dns_resolution: true,
tag: {
environment: "production",
project: "core-platform",
team: "platform-engineering",
backup: "daily"
},
status: "active",
created_at: datetime(),
updated_at: datetime()
});
CREATE (vpc2:VPC {
id: "vpc-87654321",
name: "staging-vpc",
cidr: "10.1.0.0/16",
vpc_flow_logs: {
enabled: false,
log_destination_type: null,
log_destination: null,
log_format: null,
log_status: "INACTIVE",
delivery_status: null
},
dns_hostnames: true,
dns_resolution: true,
tag: {
environment: "staging",
project: "core-platform",
team: "platform-engineering",
backup: "none"
},
status: "active",
created_at: datetime(),
updated_at: datetime()
});
// 6.2 Subnet 资源建模
// Production VPC Subnets
CREATE (subnet1:Subnet {
id: "subnet-abc12345",
name: "production-web-subnet-1a",