如何使用Java SDK获取Azure Web App的实例ID?
如何使用Java SDK获取Azure Web App的实例ID?
看起来你已经找对了核心方向,但可能在提取实例ID的最后一步出了点小问题,我来帮你捋一捋~
你用到的listInstanceIdentifiers方法其实是正确的,它返回的PagedIterable<WebSiteInstanceStatusInner>集合里,每个元素都包含了对应实例的状态信息,其中就有我们需要的实例ID。你之前觉得拿到的是“错误的实例ID”,大概率是因为没有从返回的对象里正确提取对应字段,而是直接返回了整个集合对象导致的。
下面是调整后的完整代码,帮你正确遍历并收集所有实例ID:
// 初始化AppServiceManager和WebAppsClient(这部分你之前的代码是对的) AppServiceManager appservice = AppServiceManager.authenticate(credential, profile); WebAppsClient appservicec = appservice.serviceClient().getWebApps(); // 获取Web App的所有实例状态集合 PagedIterable<WebSiteInstanceStatusInner> webAppInstances = appservicec.listInstanceIdentifiers("rg", "app"); // 遍历集合,提取每个实例的ID List<String> allInstanceIds = new ArrayList<>(); for (WebSiteInstanceStatusInner instance : webAppInstances) { // 从实例状态对象中获取实例ID String instanceId = instance.instanceId(); allInstanceIds.add(instanceId); // 也可以直接打印查看结果 System.out.println("当前实例ID:" + instanceId); } // 返回收集到的所有实例ID return allInstanceIds;
另外再给你几个小提醒,避免踩坑:
- 确认你的认证凭证(credential)拥有Web App的读取权限,不然可能会返回空结果或者权限错误
- 资源组名称和Web App名称要和Azure门户里的完全一致,Azure对资源名称的大小写是敏感的哦
- 如果你后续升级到Azure SDK v12,类和方法名可能会有一些变化,但你当前用的v11风格的AppServiceManager写法,这个方法是完全有效的
备注:内容来源于stack exchange,提问作者Rohi_Dev_1.0
相关产品推荐
相关产品推荐

