AWS Fargateを使用して実行されているタスクの詳細情報を取得するためのAWS Lambda関数を作成します。このLambda関数は、指定されたクラスターとタスクのARNを使用して、Fargateタスクの現在の状態や終了時の詳細情報を取得します。

実装

以下が、Fargateタスクの情報を取得するLambda関数のJavaコードです。

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.ecs.AmazonECS;
import com.amazonaws.services.ecs.AmazonECSClientBuilder;
import com.amazonaws.services.ecs.model.DescribeTasksRequest;
import com.amazonaws.services.ecs.model.DescribeTasksResponse;
import com.amazonaws.services.ecs.model.EcsException;
import com.amazonaws.services.ecs.model.Task;

public class DescribeFargateTaskFunction implements RequestHandler<Object, String> {

    @Override
    public String handleRequest(Object input, Context context) {
        // クラスター名とFargateタスクのARNを指定
        String clusterName = "YourClusterName";
        String taskArn = "YourTaskArn";

        // Amazon ECSクライアントの作成
        AmazonECS ecsClient = AmazonECSClientBuilder.defaultClient();

        // DescribeTasksリクエストの作成
        DescribeTasksRequest describeTasksRequest = new DescribeTasksRequest()
                .withCluster(clusterName)
                .withTasks(taskArn);

        try {
            // DescribeTasksリクエストの実行
            DescribeTasksResponse describeTasksResponse = ecsClient.describeTasks(describeTasksRequest);
            Task task = describeTasksResponse.tasks().get(0);

            // タスクの詳細情報をJSON形式の文字列に変換して返す
            return task.toString();

        } catch (EcsException e) {
            // エラー時の処理
            return "Error: " + e.getErrorMessage();
        }
    }
}

Lambda関数のデプロイ

  1. AWS Lambdaコンソールにアクセスします。
  2. “関数の作成”をクリックし、関数名や実行ロールなどの設定を行います。
  3. ランタイムはJava 8以上を選択し、上記のJavaコードをコピペして、”デプロイ”ボタンをクリックします。

参考文献

https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/ecs/EcsClient.html

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です