如何在OCI Java SDK中通过标签过滤查询VCN?
使用OCI Java SDK筛选带特定自由格式标签的VCN
你当前的代码是获取单个VCN(getVcn接口),要批量筛选符合特定自由格式标签条件的VCN,需要使用listVcns接口,并添加标签过滤参数。以下是实现代码:
// 假设已完成VcnClient的配置初始化(包含认证、区域等信息) VcnClient vcnClient = new VcnClient(configurationProvider); // 构建列表查询请求,添加标签过滤和状态过滤 ListVcnsRequest listVcnsRequest = ListVcnsRequest.builder() // 精确匹配自由格式标签的键和值 .freeformTagEquals("你的标签键", "你的标签值") // 仅筛选处于Available状态的VCN .lifecycleState(Vcn.LifecycleState.AVAILABLE) // 必填:指定要查询的Compartment OCID .compartmentId("目标Compartment的OCID") .build(); // 执行查询并获取响应 ListVcnsResponse listVcnsResponse = vcnClient.listVcns(listVcnsRequest); // 遍历输出符合条件的VCN信息 for (Vcn vcn : listVcnsResponse.getItems()) { System.out.println("VCN名称: " + vcn.getDisplayName()); System.out.println("VCN OCID: " + vcn.getId()); System.out.println("VCN状态: " + vcn.getLifecycleState()); }
关键说明
freeformTagEquals("标签键", "标签值"):用于精确匹配自由格式标签的键值对,只有同时包含该键值对的VCN会被返回。如果需要添加多个标签条件,可以多次调用该方法(多个条件为逻辑与关系)。compartmentId是必填参数,必须指定要查询资源所在的Compartment的OCID。- 如果需要等待特定VCN达到可用状态,可以对单个VCN使用
getWaiters(),但批量查询时建议先通过lifecycleState过滤,再按需处理单个资源。
内容的提问来源于stack exchange,提问作者Prabhu
相关产品推荐
相关产品推荐

