以下の内容はhttps://www.mtioutput.com/entry/aws-ecs-exitcodeより取得しました。


【AWS/ECS】タスクとして実行したスクリプトの終了コードを取得する

スポンサーリンク

はじめに

ECSではタスク定義を指定した上で「Run Task」を行うことでコンテナをバッチのようにして起動ができます。また、起動したコンテナの実行結果は、ステータスとして完了したかだけではなくシェル終了時の終了コード(Exit Code)としても取得が可能です。

本記事では実際にタスクとしてスクリプトを異常終了させ、その終了コードをコマンドから取得する流れを記載しました。

環境情報
  • ECS Fargate 1.4
  • aws-cli/2.15.5

事前準備

下記のように終了コードを5で返すスクリプトを作成した上で

#!/bin/bash

sleep 10
exit 5

コンテナイメージ作成用のDockerfileを作成します。

FROM registry.access.redhat.com/ubi8/ubi
ADD test.sh /test.sh
RUN chmod -v +x /test.sh
CMD ["/test.sh"]

同ファイルを元に作成したコンテナをローカル環境で起動確認すると、終了コードが確認できます。

$ docker image build -t test-exit -f Dockerfile .
$ docker run  test-exit:latest
$ docker ps -a
CONTAINER ID   IMAGE              COMMAND           CREATED              STATUS                          PORTS                                   NAMES
xx   test-exit:latest     "/test.sh"        About a minute ago   Exited (5) About a minute ago                                           xx

これをECS上で稼働させるため、同コンテナのタスク定義(Task Definition)を作成し、保存します。作成したタスク定義のJSONは以下。

# TBC

確認方法

起動したいクラスター,サブネット,セキュリティグループ,パブリックIPの付与有無を指定した上で以下のコマンドを押下すると

$ aws ecs run-task --cluster arn:aws:ecs:ap-northeast-1:xx:cluster/xx --task-definition arn:aws:ecs:ap-northeast-1:xx:task-definition/xx:1 --network-configuration "awsvpcConfiguration={subnets=[subnet-xx],securityGroups=[sg-xx],assignPublicIp=DISABLED}" --launch-type FARGATE

タスクとして一覧に表示されてタスク名が取得できます。

$ aws ecs list-tasks --cluster arn:aws:ecs:ap-northeast-1:xx:cluster/xx
{
    "taskArns": [
        "arn:aws:ecs:ap-northeast-1:xx:task/xx/2a5a4357b5894f38ad5152a1686102c5"
    ]
}

このタスクArnsの末尾をdescribe-tasksで引数として指定すると

$ aws ecs describe-tasks --tasks xx --cluster arn:aws:ecs:ap-northeast-1:xx:cluster/xx

以下のように起動が終了したコンテナの状態が確認でき、スクリプトで指定したコードと同じ値であることが分かります。

{
    "tasks": [
        {
...
            "containers": [
                {
...
                    "lastStatus": "STOPPED",
                    "exitCode": 5,
 ...
                }
            ],
  ...
    "failures": []
}

終わりに

TBC

以上、ご参考になれば幸いです。




以上の内容はhttps://www.mtioutput.com/entry/aws-ecs-exitcodeより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14