该技能围绕 OCI Compute 的实例生命周期展开,目的是用 Python SDK 可靠地创建、管理和伸缩计算实例,并通过跨可用域重试应对容量短缺。
用途:配置虚拟机、选择实例规格、处理“out of host capacity”错误,以及启动、停止、重启、终止实例和管理启动卷。
主要能力:
- 规格选择指引,区分 Flex 与 Standard、ARM(Ampere A1)、AMD、Intel 等,并建议优先使用 Flex 规格以精确设置 OCPU 和内存。
- 列出可用域、可用规格和镜像。
- 带容量重试的实例创建:在某可用域遇到 500 InternalError 且包含 capacity 时,依次切换其他可用域。
- 生命周期操作:SOFTSTOP、STOP、START、SOFTRESET,以及 terminate_instance(默认保留启动卷)。
- 通过 VNIC 附件获取实例的公网与私网 IP。
使用前提:安装 OCI Python SDK(pip install oci);在 ~/.oci/config 配置 user、fingerprint、tenancy、region、key_file;具备允许管理实例的 IAM 策略;Python 3.8+;已有一个 VCN 及至少一个子网(见 oraclecloud-core-workflow-b)。
基本用法:从配置文件加载配置,创建 ComputeClient、IdentityClient 等客户端;用 list_availability_domains 获取可用域;用 list_shapes、list_images 查询规格与镜像;构造 LaunchInstanceDetails(含 compartment_id、display_name、shape、shape_config、source_details、create_vnic_details、metadata 中的 ssh_authorized_keys)后调用 launch_instance;用 instance_action 执行停止/启动/重启;用 terminate_instance 并设置 preserve_boot_volume 终止实例;用 get_instance 与 list_vnic_attachments 配合 VirtualNetworkClient.get_vnic 读取状态和 IP。CLI 也可用于列出实例和查找 Oracle Linux 镜像。
常见错误与处理:容量不足(500)时跨可用域重试、换规格或换区域;401 NotAuthenticated 检查配置与密钥;404 NotAuthorizedOrNotFound 检查 IAM 策略与 OCID;400 InvalidParameter 表示该区域无此规格,先列出规格确认;429 TooManyRequests 需自行加指数退避,OCI 不返回 Retry-After;400 LimitExceeded 需在控制台申请提高限额。
适用场景:需要以编程方式在 OCI 上批量或自动化创建计算实例、跨可用域争取容量、统一管理实例生命周期。
限制:若所有可用域均无容量,仍会失败,只能更换规格或区域;功能依赖 OCI 账户、配置和 IAM 权限;具体可用规格、镜像 OCID、区域与免费额度以实际账户和官方文档为准,资料未提供具体价格、SLA 或更多计费细节。