如何使用oci-python-sdk基于现有实例配置创建OCI计算实例
OCI Python SDK 基于现有实例配置创建实例实现方案
核心原理
OCI控制台的「实例配置」是预定义的实例启动模板,SDK原生提供直接调用实例配置创建实例的接口,无需手动拼接镜像、计算规格、网络配置等参数,实现效果和控制台点击「启动实例」完全一致。
实现步骤
- 第一步:获取目标实例配置的OCID,可直接从控制台「实例配置详情页」复制,也可通过
compute_client.list_instance_configurations()接口按 compartment 筛选查询 - 第二步:构造实例启动请求,仅需指定实例配置OCID,其余参数可选,传入时会覆盖实例配置的预设值
- 第三步:调用启动接口,可轮询实例状态直到创建完成
代码示例
import oci import time # 加载OCI身份配置,默认读取~/.oci/config配置文件 oci_config = oci.config.from_file() compute_client = oci.core.ComputeClient(oci_config) # 替换为实际的实例配置OCID、目标 compartment OCID INSTANCE_CONFIG_OCID = "ocid1.instanceconfiguration.oc1.<region>.<unique_identifier>" COMPARTMENT_OCID = "ocid1.compartment.oc1..<unique_identifier>" # 构造启动请求参数 launch_params = oci.core.models.LaunchInstanceConfigurationDetails( instance_configuration_id=INSTANCE_CONFIG_OCID, compartment_id=COMPARTMENT_OCID, # 可选参数,不填则继承实例配置预设值 # display_name="自定义实例名称", # availability_domain="Uocm:AP-SINGAPORE-1:AP-SINGAPORE-AD-1" ) # 提交实例创建请求 response = compute_client.launch_instance_configuration(launch_params) print(f"实例创建请求已提交,实例OCID:{response.data.id}") # 可选:轮询实例创建状态 while True: instance = compute_client.get_instance(response.data.id).data if instance.lifecycle_state == "RUNNING": print("实例创建完成,已进入运行状态") break if instance.lifecycle_state == "FAILED": print("实例创建失败") break time.sleep(30)
注意事项
- 实例配置的所有预设参数(包括自定义镜像、SSH密钥、安全组、存储配置等)都会被自动继承,和控制台操作效果完全一致
- 仅当需要修改部分配置时才需要在请求参数中传入对应字段,无需修改的参数无需声明
- 请求提交后实例进入预配置状态,等待生命周期状态变为
RUNNING即可正常使用
内容的提问来源于stack exchange,提问作者Maciej Zwoliński
相关产品推荐
相关产品推荐

