【AWS】Lambda ~ Java / EC2 を取得する ~

 ■ はじめに

https://dk521123.hatenablog.com/entry/2017/12/11/225605

の続き。

今度は、EC2の情報を取得してみる。

 ■ サンプル

http://docs.aws.amazon.com/ja_jp/sdk-for-java/v1/developer-guide/examples-ec2-instances.html#describing-instances

より抜粋 

インスタンスの説明

インスタンスをリスト表示するには、DescribeInstancesRequest を作成し、
AmazonEC2Client の describeInstances メソッドを呼び出します。
お客様のアカウントとリージョンの Amazon EC2 インスタンスをリスト表示するのに
使用できる DescribeInstancesResult オブジェクトが返されます。

 LambdaEc2ListDemo.java

import com.amazonaws.services.ec2.AmazonEC2;
import com.amazonaws.services.ec2.AmazonEC2ClientBuilder;
import com.amazonaws.services.ec2.model.DescribeInstancesRequest;
import com.amazonaws.services.ec2.model.DescribeInstancesResult;
import com.amazonaws.services.ec2.model.Instance;
import com.amazonaws.services.ec2.model.Reservation;
import com.amazonaws.services.ec2.model.Tag;
import com.amazonaws.services.lambda.runtime.Context;

public class LambdaEc2ListDemo {
  public Object handleRequest(Object input, Context context) {
    final AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient();
    DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest();
    DescribeInstancesResult describeInstancesResult = ec2.describeInstances(describeInstancesRequest);
    for (Reservation reservation : describeInstancesResult.getReservations()) {
      for (Instance instance : reservation.getInstances()) {
        System.out.println("Instance ID : " + instance.getInstanceId());
        System.out.println("Public IP Address : " + instance.getPublicIpAddress());
        System.out.println("Key Name : " + instance.getKeyName());
        for (Tag tag : instance.getTags()) {
          System.out.println("Key : " + tag.getKey());
          System.out.println("Value : " + tag.getValue());
        }
      }
    }
    return "Done!";
  }
}

 関連記事

Lambda ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2017/04/05/235618
Lambda ~ Java / EC2 を操作する ~
https://dk521123.hatenablog.com/entry/2017/12/11/225605