調べてもあまりいい方法がなかったので、ゴリゴリですがとりあえず作ってました。
TD;DR
-
curlとpython -cを使ってやりました。
-
- サポートバージョンは以下の通り
- EC2:1.21.0以降のバージョン
- Fargate : v1.3.0以降のバージョン
- サポートバージョンは以下の通り
-
curlで
${ECS_CONTAINER_METADATA_URI}/task
を取得、pythonでparseしてTaskARNから取得
#!/bin/bash
METADATA=$(curl ${ECS_CONTAINER_METADATA_URI}/task)
python3 -c "import json; meta=json.loads('$METADATA'); task_id=meta['TaskARN'].split('/')[-1]; print(task_id)" > ./task_id
TASK_ID=$(cat ./task_id)
TASK IDが取りたい
- TASK実行container内でTask IDをもとに処理したいときがあった
- けど、環境変数は用意されてない
- METADATAはとれるので、そこからparseした
まとめ
- 一応取ることはできた
- けど、本当はTASK実行container内でやることではない気がする
- 普通に環境変数用意してほしい