aliyun-vpc-manage

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese
Category: service
分类: service

Virtual Private Cloud (VPC)

虚拟私有云(VPC)

Validation

验证

bash
mkdir -p output/aliyun-vpc-manage
for f in skills/network/vpc/aliyun-vpc-manage/scripts/*.py; do
  python3 -m py_compile "$f"
done
echo "py_compile_ok" > output/aliyun-vpc-manage/validate.txt
Pass criteria: command exits 0 and
output/aliyun-vpc-manage/validate.txt
is generated.
bash
mkdir -p output/aliyun-vpc-manage
for f in skills/network/vpc/aliyun-vpc-manage/scripts/*.py; do
  python3 -m py_compile "$f"
done
echo "py_compile_ok" > output/aliyun-vpc-manage/validate.txt
通过标准:命令退出码为0,且成功生成
output/aliyun-vpc-manage/validate.txt
文件。

Output And Evidence

输出与凭证

  • Save list/summarize outputs under
    output/aliyun-vpc-manage/
    .
  • Keep command arguments and region scope in each evidence file.
Use Alibaba Cloud OpenAPI (RPC) with official SDKs or OpenAPI Explorer to manage VPC resources. Prefer the Python SDK for all examples and execution.
  • 列举/汇总结果请保存到
    output/aliyun-vpc-manage/
    目录下。
  • 每个凭证文件中需保留命令参数和地域范围信息。
请使用阿里云OpenAPI(RPC风格)搭配官方SDK或OpenAPI Explorer管理VPC资源。 所有示例和执行优先使用Python SDK。

Prerequisites

前置要求

bash
pip install alibabacloud_vpc20160428 alibabacloud_tea_openapi alibabacloud_credentials
  • Prepare AccessKey (RAM user/role with least privilege).
  • Choose the correct region and endpoint (public/VPC).
  • VPC OpenAPI is RPC style; prefer SDK or OpenAPI Explorer to avoid manual signing.
bash
pip install alibabacloud_vpc20160428 alibabacloud_tea_openapi alibabacloud_credentials
  • 准备AccessKey(使用权限最小化的RAM用户/角色)。
  • 选择正确的地域和endpoint(公网/VPC)。
  • VPC OpenAPI为RPC风格,优先使用SDK或OpenAPI Explorer,避免手动签名。

API behavior notes (from VPC docs)

API行为说明(来自VPC官方文档)

  • DescribeVpcs
    and
    DescribeVSwitches
    support pagination via
    PageNumber
    +
    PageSize
    .
  • DescribeVpcs
    requires
    RegionId
    in the request.
  • CreateVpc
    returns
    VpcId
    immediately but VPC enters
    Pending
    status; poll with
    DescribeVpcs
    until
    Available
    .
  • CreateVSwitch
    requires an existing VPC in
    Available
    status and a valid
    ZoneId
    .
  • DeleteVpc
    fails if VPC still has VSwitches, security groups, or other resources attached.
  • DeleteVSwitch
    fails if VSwitch still has ECS instances or other resources.
  • DescribeVpcs
    DescribeVSwitches
    支持通过
    PageNumber
    +
    PageSize
    进行分页。
  • DescribeVpcs
    请求中必须携带
    RegionId
    参数。
  • CreateVpc
    会立即返回
    VpcId
    ,但VPC会进入
    Pending
    状态;请通过
    DescribeVpcs
    轮询直到状态变为
    Available
  • CreateVSwitch
    要求关联的VPC处于
    Available
    状态,且提供有效的
    ZoneId
  • 如果VPC仍绑定有VSwitch、安全组或其他资源,
    DeleteVpc
    会执行失败。
  • 如果VSwitch下仍有ECS实例或其他资源,
    DeleteVSwitch
    会执行失败。

Workflow

工作流程

  1. Confirm region, resource identifiers, and desired action.
  2. Find API group and exact operation name in
    references/api_overview.md
    .
  3. Call API with Python SDK (preferred) or OpenAPI Explorer.
  4. Verify results with describe/list APIs.
  5. If you need repeatable inventory or summaries, use
    scripts/
    and write outputs under
    output/aliyun-vpc-manage/
    .
  1. 确认地域、资源标识符和预期操作。
  2. references/api_overview.md
    中找到对应的API组和准确的操作名称。
  3. 使用Python SDK(优先)或OpenAPI Explorer调用API。
  4. 通过查询/列举类API验证执行结果。
  5. 如果需要可复用的清单或汇总数据,使用
    scripts/
    目录下的脚本,将输出写入
    output/aliyun-vpc-manage/
    目录。

SDK priority

SDK优先级

  1. Python SDK (preferred)
  2. OpenAPI Explorer
  3. Other SDKs (only if Python is not feasible)
  1. Python SDK(优先)
  2. OpenAPI Explorer
  3. 其他SDK(仅当Python不可用时使用)

Python SDK quickstart (list VPCs)

Python SDK快速入门(列举VPC)

Virtual environment is recommended (avoid PEP 668 system install restrictions).
bash
python3 -m venv .venv
. .venv/bin/activate
pip install alibabacloud_vpc20160428 alibabacloud_tea_openapi alibabacloud_credentials
python
from alibabacloud_vpc20160428.client import Client as Vpc20160428Client
from alibabacloud_vpc20160428 import models as vpc_models
from alibabacloud_tea_openapi import models as open_api_models


def create_client(region_id: str) -> Vpc20160428Client:
    config = open_api_models.Config(
        region_id=region_id,
        endpoint=f"vpc.{region_id}.aliyuncs.com",
    )
    return Vpc20160428Client(config)


def list_vpcs(region_id: str):
    client = create_client(region_id)
    resp = client.describe_vpcs(vpc_models.DescribeVpcsRequest(
        region_id=region_id,
        page_number=1,
        page_size=50,
    ))
    for v in resp.body.vpcs.vpc:
        print(v.vpc_id, v.vpc_name, v.cidr_block, v.status)


if __name__ == "__main__":
    list_vpcs("cn-hangzhou")
推荐使用虚拟环境(避免PEP 668系统安装限制)。
bash
python3 -m venv .venv
. .venv/bin/activate
pip install alibabacloud_vpc20160428 alibabacloud_tea_openapi alibabacloud_credentials
python
from alibabacloud_vpc20160428.client import Client as Vpc20160428Client
from alibabacloud_vpc20160428 import models as vpc_models
from alibabacloud_tea_openapi import models as open_api_models


def create_client(region_id: str) -> Vpc20160428Client:
    config = open_api_models.Config(
        region_id=region_id,
        endpoint=f"vpc.{region_id}.aliyuncs.com",
    )
    return Vpc20160428Client(config)


def list_vpcs(region_id: str):
    client = create_client(region_id)
    resp = client.describe_vpcs(vpc_models.DescribeVpcsRequest(
        region_id=region_id,
        page_number=1,
        page_size=50,
    ))
    for v in resp.body.vpcs.vpc:
        print(v.vpc_id, v.vpc_name, v.cidr_block, v.status)


if __name__ == "__main__":
    list_vpcs("cn-hangzhou")

Python SDK scripts (recommended for inventory)

Python SDK脚本(推荐用于资源清单统计)

  • List VPCs in a region:
    scripts/list_vpcs.py
  • List VSwitches in a region:
    scripts/list_vswitches.py
  • Create a VPC:
    scripts/create_vpc.py
  • Create a VSwitch:
    scripts/create_vswitch.py
  • Delete a VPC:
    scripts/delete_vpc.py
  • Delete a VSwitch:
    scripts/delete_vswitch.py
  • Query available zones:
    scripts/describe_zones.py
  • 列举指定地域下的VPC:
    scripts/list_vpcs.py
  • 列举指定地域下的VSwitch:
    scripts/list_vswitches.py
  • 创建VPC:
    scripts/create_vpc.py
  • 创建VSwitch:
    scripts/create_vswitch.py
  • 删除VPC:
    scripts/delete_vpc.py
  • 删除VSwitch:
    scripts/delete_vswitch.py
  • 查询可用区:
    scripts/describe_zones.py

VPC 网络规划设计原则

VPC 网络规划设计原则

CIDR 地址规划

CIDR 地址规划

  • 每个地域的业务 VPC 使用独立的 /16 网段,避免跨地域互联时 CIDR 冲突。推荐分配方式:
地域推荐 CIDR
cn-hangzhou10.1.0.0/16
cn-shanghai10.2.0.0/16
ap-southeast-110.3.0.0/16
cn-beijing10.4.0.0/16
更多地域10.5~254.0.0/16
  • 不要使用过大的 CIDR(如
    10.0.0.0/8
    ),即使 VSwitch 只用了很小一部分。大网段会阻止与其他
    10.x
    段 VPC 通过 CEN 互联。
  • VSwitch 统一使用 /24(252 可用 IP),对大多数业务足够。如果单可用区需要大量实例,可用 /20(4092 IP)。
  • 预留网段间隔用于未来扩展。如应用层用 0-9,数据库层用 10-19,中间件用 20-29。
  • 每个地域的业务 VPC 使用独立的 /16 网段,避免跨地域互联时 CIDR 冲突。推荐分配方式:
地域推荐 CIDR
cn-hangzhou10.1.0.0/16
cn-shanghai10.2.0.0/16
ap-southeast-110.3.0.0/16
cn-beijing10.4.0.0/16
更多地域10.5~254.0.0/16
  • 不要使用过大的 CIDR(如
    10.0.0.0/8
    ),即使 VSwitch 只用了很小一部分。大网段会阻止与其他
    10.x
    段 VPC 通过 CEN 互联。
  • VSwitch 统一使用 /24(252 可用 IP),对大多数业务足够。如果单可用区需要大量实例,可用 /20(4092 IP)。
  • 预留网段间隔用于未来扩展。如应用层用 0-9,数据库层用 10-19,中间件用 20-29。

可用区与高可用

可用区与高可用

  • 生产环境至少覆盖 2~3 个可用区,每个可用区至少 1 个 VSwitch。
  • 应用层和数据层分布在不同可用区,确保单 AZ 故障时服务不中断。
  • 创建 VSwitch 前先用
    scripts/describe_zones.py
    查询可用区列表,不同地域的可用区编号不同。
  • 生产环境至少覆盖 2~3 个可用区,每个可用区至少 1 个 VSwitch。
  • 应用层和数据层分布在不同可用区,确保单 AZ 故障时服务不中断。
  • 创建 VSwitch 前先用
    scripts/describe_zones.py
    查询可用区列表,不同地域的可用区编号不同。

VSwitch 分层隔离

VSwitch 分层隔离

按业务功能对 VSwitch 进行分段,便于通过 ACL 和安全组实现网络隔离:
10.x.0~9.0/24    → 应用层(Web/API 服务器)
10.x.10~19.0/24  → 数据层(RDS、Redis、MongoDB)
10.x.20~29.0/24  → 中间件(MQ、ES、Nacos)
10.x.30~39.0/24  → 管理层(跳板机、运维工具)
按业务功能对 VSwitch 进行分段,便于通过 ACL 和安全组实现网络隔离:
10.x.0~9.0/24    → 应用层(Web/API 服务器)
10.x.10~19.0/24  → 数据层(RDS、Redis、MongoDB)
10.x.20~29.0/24  → 中间件(MQ、ES、Nacos)
10.x.30~39.0/24  → 管理层(跳板机、运维工具)

VSwitch 命名规范

VSwitch 命名规范

推荐格式:
vsw-{region简写}-{可用区}-{用途}
示例:
vsw-sg-a-app
vsw-hz-h-db
vsw-sh-e-middleware
推荐格式:
vsw-{region简写}-{可用区}-{用途}
示例:
vsw-sg-a-app
vsw-hz-h-db
vsw-sh-e-middleware

跨地域互联(CEN)

跨地域互联(CEN)

  • 需要互联的 VPC 的 CIDR 必须不重叠
  • 自动生成的 VPC(如 FC 组件创建的)通常使用
    10.0.0.0/8
    不要将其加入 CEN,否则会与其他地域的
    10.x
    段冲突。
  • 业务 VPC 规划时应预先考虑 CEN 互联需求,从一开始就使用不重叠的 /16 网段。
  • 需要互联的 VPC 的 CIDR 必须不重叠
  • 自动生成的 VPC(如 FC 组件创建的)通常使用
    10.0.0.0/8
    不要将其加入 CEN,否则会与其他地域的
    10.x
    段冲突。
  • 业务 VPC 规划时应预先考虑 CEN 互联需求,从一开始就使用不重叠的 /16 网段。

常见陷阱

常见陷阱

问题原因解决方案
CEN 挂载失败,提示 CIDR 冲突两个 VPC 使用了重叠的 CIDR新建 VPC 使用不重叠的 /16 网段
DeleteVpc 失败VPC 下仍有 VSwitch/安全组/NAT 等资源先删除所有子资源,再删 VPC
DeleteVSwitch 失败VSwitch 下仍有 ECS/RDS 等实例先释放或迁移实例
创建 VSwitch 报 ZoneId 无效该可用区不支持或已售罄用 describe_zones.py 查询有效可用区
默认 VPC 用于生产默认 VPC 网段不可控,且无法与其他 VPC 合理互联生产环境始终新建 VPC,规划好 CIDR
问题原因解决方案
CEN 挂载失败,提示 CIDR 冲突两个 VPC 使用了重叠的 CIDR新建 VPC 使用不重叠的 /16 网段
DeleteVpc 失败VPC 下仍有 VSwitch/安全组/NAT 等资源先删除所有子资源,再删 VPC
DeleteVSwitch 失败VSwitch 下仍有 ECS/RDS 等实例先释放或迁移实例
创建 VSwitch 报 ZoneId 无效该可用区不支持或已售罄用 describe_zones.py 查询有效可用区
默认 VPC 用于生产默认 VPC 网段不可控,且无法与其他 VPC 合理互联生产环境始终新建 VPC,规划好 CIDR

Common operation mapping

常用操作映射

  • VPC lifecycle:
    CreateVpc
    ,
    DeleteVpc
    ,
    ModifyVpcAttribute
  • VPC query:
    DescribeVpcs
    ,
    DescribeVpcAttribute
  • VSwitch lifecycle:
    CreateVSwitch
    ,
    DeleteVSwitch
    ,
    ModifyVSwitchAttribute
  • VSwitch query:
    DescribeVSwitches
    ,
    DescribeVSwitchAttributes
  • Route tables:
    CreateRouteTable
    ,
    DeleteRouteTable
    ,
    DescribeRouteTables
    ,
    CreateRouteEntry
    ,
    DeleteRouteEntry
  • NAT Gateway:
    CreateNatGateway
    ,
    DeleteNatGateway
    ,
    DescribeNatGateways
  • EIP:
    AllocateEipAddress
    ,
    AssociateEipAddress
    ,
    UnassociateEipAddress
    ,
    ReleaseEipAddress
    ,
    DescribeEipAddresses
  • Tags:
    TagResources
    ,
    UntagResources
    ,
    ListTagResources
  • VPC生命周期管理:
    CreateVpc
    DeleteVpc
    ModifyVpcAttribute
  • VPC查询:
    DescribeVpcs
    DescribeVpcAttribute
  • VSwitch生命周期管理:
    CreateVSwitch
    DeleteVSwitch
    ModifyVSwitchAttribute
  • VSwitch查询:
    DescribeVSwitches
    DescribeVSwitchAttributes
  • 路由表管理:
    CreateRouteTable
    DeleteRouteTable
    DescribeRouteTables
    CreateRouteEntry
    DeleteRouteEntry
  • NAT网关管理:
    CreateNatGateway
    DeleteNatGateway
    DescribeNatGateways
  • EIP管理:
    AllocateEipAddress
    AssociateEipAddress
    UnassociateEipAddress
    ReleaseEipAddress
    DescribeEipAddresses
  • 标签管理:
    TagResources
    UntagResources
    ListTagResources

Query patterns

查询模式

  • List VPCs:
    DescribeVpcs
    (supports filters:
    VpcId
    ,
    VpcName
    ,
    IsDefault
    ,
    ResourceGroupId
    )
  • List VSwitches:
    DescribeVSwitches
    (supports filters:
    VpcId
    ,
    VSwitchId
    ,
    ZoneId
    ,
    VSwitchName
    ,
    IsDefault
    )
  • Available zones: use ECS
    DescribeZones
    API to find valid zones for VSwitch creation
  • 列举VPC:
    DescribeVpcs
    (支持过滤参数:
    VpcId
    VpcName
    IsDefault
    ResourceGroupId
  • 列举VSwitch:
    DescribeVSwitches
    (支持过滤参数:
    VpcId
    VSwitchId
    ZoneId
    VSwitchName
    IsDefault
  • 查询可用区:使用ECS的
    DescribeZones
    API获取可创建VSwitch的有效可用区

AccessKey priority (must follow, align with README)

AccessKey优先级(必须遵守,与README保持一致)

  1. Environment variables:
    ALIBABACLOUD_ACCESS_KEY_ID
    /
    ALIBABACLOUD_ACCESS_KEY_SECRET
    /
    ALIBABACLOUD_REGION_ID
    Region policy:
    ALIBABACLOUD_REGION_ID
    is an optional default. If unset, decide the most reasonable region for the task; if unclear, ask the user.
  2. Shared config file:
    ~/.alibabacloud/credentials
    (region still from env)
  1. 环境变量:
    ALIBABACLOUD_ACCESS_KEY_ID
    /
    ALIBABACLOUD_ACCESS_KEY_SECRET
    /
    ALIBABACLOUD_REGION_ID
    地域规则:
    ALIBABACLOUD_REGION_ID
    为可选默认值。如果未设置,根据任务选择最合理的地域;如果不明确,询问用户。
  2. 共享配置文件:
    ~/.alibabacloud/credentials
    (地域仍从环境变量读取)

Auth setup (README-aligned)

鉴权配置(与README对齐)

Environment variables:
bash
export ALIBABACLOUD_ACCESS_KEY_ID="your-ak"
export ALIBABACLOUD_ACCESS_KEY_SECRET="your-sk"
export ALIBABACLOUD_REGION_ID="cn-hangzhou"
Also supported by the Alibaba Cloud SDKs:
bash
export ALIBABA_CLOUD_ACCESS_KEY_ID="your-ak"
export ALIBABA_CLOUD_ACCESS_KEY_SECRET="your-sk"
Legacy compatibility:
bash
export ALICLOUD_ACCESS_KEY_ID="your-ak"
export ALICLOUD_ACCESS_KEY_SECRET="your-sk"
Shared config file:
~/.alibabacloud/credentials
ini
[default]
type = access_key
access_key_id = your-ak
access_key_secret = your-sk
环境变量配置:
bash
export ALIBABACLOUD_ACCESS_KEY_ID="your-ak"
export ALIBABACLOUD_ACCESS_KEY_SECRET="your-sk"
export ALIBABACLOUD_REGION_ID="cn-hangzhou"
阿里云SDK也支持以下环境变量:
bash
export ALIBABA_CLOUD_ACCESS_KEY_ID="your-ak"
export ALIBABA_CLOUD_ACCESS_KEY_SECRET="your-sk"
旧版本兼容配置:
bash
export ALICLOUD_ACCESS_KEY_ID="your-ak"
export ALICLOUD_ACCESS_KEY_SECRET="your-sk"
共享配置文件:
~/.alibabacloud/credentials
ini
[default]
type = access_key
access_key_id = your-ak
access_key_secret = your-sk

API discovery

API查找

  • Product code:
    Vpc
  • Default API version:
    2016-04-28
  • Use OpenAPI metadata endpoints to list APIs and get schemas (see references).
  • 产品代码:
    Vpc
  • 默认API版本:
    2016-04-28
  • 使用OpenAPI元数据端点列举API和获取Schema(详见参考文档)。

Output policy

输出规则

If you need to save responses or generated artifacts, write them under:
output/aliyun-vpc-manage/
如果需要保存响应或生成的产物,请写入以下目录:
output/aliyun-vpc-manage/

References

参考文档

  • API overview:
    references/api_overview.md
  • Sources:
    references/sources.md
  • API概览:
    references/api_overview.md
  • 来源:
    references/sources.md