如何通过使用 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?

AWS Opsworks:通过 https 进行负载平衡

Windows Puppet 代理未连接到 AWSOpsWorks Puppet Enterprise 主服务器

如何在 AWS Opsworks 上设置 EC2 标签

AWS OpsWorks“start_failed”状态并且没有日志?

如何增加 AWS Opsworks 的部署超时限制?