如何通过使用 Java 的 AWSOpsWorks 客户端获取所有堆栈、应用程序和实例 ID
Posted
技术标签:
【中文标题】如何通过使用 Java 的 AWSOpsWorks 客户端获取所有堆栈、应用程序和实例 ID【英文标题】:How to get all stacks, Apps and Instance Ids using AWSOpsWorks client using Java 【发布时间】:2015-12-21 13:43:16 【问题描述】:我是 AWS OpsWork 的新手,我必须使用 Java AWS 开发工具包从 AWS 账户获取所有堆栈、应用程序和实例 ID。
我尝试使用 AWSOpsWorksClient,但找不到如何使用它获取堆栈 ID。此外,我必须在特定 APP 上的所有实例上开发一个项目。
有人可以帮忙吗?
【问题讨论】:
那么你在哪里卡住了,java、aws sdk for java 还是其他?您是否尝试过任何代码并粘贴到此处,以便人们可以帮助您修复? 我找到了使用 Stack Id 获取 AWS Layer 和 App id 的代码。 所以先把代码贴到这里,然后指出你需要帮助的地方。 【参考方案1】:我找到了使用 Stack id 获取 AWS 账户的 Layer 和 App id 的方法。
AWSOpsWorksClient opsClient = new AWSOpsWorksClient(awsCredentials);
//To get Layer Id
DescribeLayersRequest layerRequest = new DescribeLayersRequest();
layerRequest.setStackId(stackId);
//This will return the Layers, and then we can get id from the Layer.
DescribeLayersResult layerResult = opsClient.describeLayers(layerRequest);
//To get App Id
DescribeAppsRequest appsRequest = new DescribeAppsRequest();
appsRequest.setStackId(stackId);
//This will return the Apps from that we can get App id.
DescribeAppsResult appsResult = opsClient.describeApps(appsRequest);
//To get Instance ids
DescribeInstancesRequest instanceRequest = new DescribeInstancesRequest();
instanceRequest.setStackId(stackId);
instanceRequest.setLayerId(layer.getLayerId());
//This will return the List of Instance, from that we can get the instance id.
DescribeInstancesResult instanceResult = opsClient.describeInstances(instanceRequest);
【讨论】:
以上是关于如何通过使用 Java 的 AWSOpsWorks 客户端获取所有堆栈、应用程序和实例 ID的主要内容,如果未能解决你的问题,请参考以下文章
如何使用内置 Java 应用层在 AWS OpsWorks 上部署 Jenkins?
Windows Puppet 代理未连接到 AWSOpsWorks Puppet Enterprise 主服务器