当前位置: 首页 > 知识库问答 >
问题:

使用RunInstancesRequest获取AWS EC2实例详细信息

欧阳绪
2023-03-14

我试图使用RunInstancesRequest获取AWS EC2实例的详细信息。为此,我遵循了AWS文档https://docs.AWS.amazon.com/sdk-for-java/v1/developer-guide/examples-ec2-instances.html。

RunInstancesRequest runInstancesRequest = new RunInstancesRequest();
runInstancesRequest.withImageId(imageId).withInstanceType(instanceType).withMinCount(1).withMaxCount(count).withSecurityGroups(securityGroupName);
RunInstancesResult runInstancesResult = amazonEC2.runInstances(runInstancesRequest);
String instance_id = runInstancesResult.getReservation().getReservationId();
//waiting for 2 minute
DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest();
describeInstancesRequest.setInstanceIds(Arrays.asList(instance_id));
DescribeInstancesResult describeInstancesResult = amazonEC2.describeInstances(describeInstancesRequest);
for(Reservation reservation : describeInstancesResult.getReservations()){
    for(Instance instance : reservation.getInstances()) {
         System.out.println(instance.getPublicDnsName());
    }
}

在这里,我能够启动并运行AWS EC2实例,但我面临的问题是,我无法使用RunInstancesResult对象获取EC2详细信息。根据AWS文档,instance_id似乎是reservation_id,但我认为并非如此。因为instance_id以“i-”开头,而reservation_id以“r-”开头。

我如何才能得到我使用API创建的仅一个EC2的细节?当我获得runinstancesresult对象作为上一个API的输出时,问题就来了:如何使用runinstancesRequest获得AWS EC2实例的详细信息?

共有1个答案

孔茂
2023-03-14

保留是启动实例的请求。例如,可以使用一个启动请求创建两个实例。因此,保留包含多个实例。

如果查看response对象,您将看到保留确实包含多个实例,例如:

{
    "OwnerId": "123456789012",
    "ReservationId": "r-08626e73c547023b1",
    "Groups": [
        {
            "GroupName": "MySecurityGroup",
            "GroupId": "sg-903004f8"
        }
    ],
    "Instances": [
        {
            "Monitoring": {
                "State": "disabled"
            },
            "PublicDnsName": null,
            "RootDeviceType": "ebs",
            "State": {
                "Code": 0,
                "Name": "pending"
            },
            "EbsOptimized": false,
            "LaunchTime": "2013-07-19T02:42:39.000Z",
            "ProductCodes": [],
            "StateTransitionReason": null,
            "InstanceId": "i-1234567890abcdef0",
            "ImageId": "ami-1a2b3c4d",
            "PrivateDnsName": null,
            "KeyName": "MyKeyPair",
etc.
 类似资料:
  • null 我的查询是: 输出为: 2)需要考虑这些属性(region、type、ondemand/reserved),获取每个实例的价格,并将完整的实例详细信息放在CSV文件中。

  • 如何获得ec2实例详细信息(如名称、id、类型、区域、体积、平台、ondemand/reserved)和实例价格详细信息。 在cli中使用aws api并将其写成csv文件。 提前谢了。

  • 接口说明 获取角色详细信息 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 GET /permissions/api/team/role/v1.0.0/info 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 token string header 是 当前登录用户的TOKEN roleId string query 是

  • 接口说明 获取素材详细信息 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 GET /wish3dearth/api/material/v1.0.0/getMaterialDetail 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 serviceDomain string query 否 serviceDomain t

  • 接口说明 获取角色详细信息 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 如开启https功能,请求地址的协议应改为https,如:https://www.example.com/wish3dearth/api/access/v1.0.0/getLicenseInfo API地址 GET /permissions/api/team/role/v1.0.

  • 接口说明 获取素材详细信息 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 如开启https功能,请求地址的协议应改为https,如:https://www.example.com/wish3dearth/api/access/v1.0.0/getLicenseInfo API地址 GET /wish3dearth/api/material/v1.0.0