LoginSignup
1
0

More than 5 years have passed since last update.

aws cliを使ってECSのクラスタに紐づいた全コンテナインスタンスIDをAZごとに取得した件

Last updated at Posted at 2018-05-17

やりたいこと

以下の赤い四角で囲まれた部分をAZごとに取得したい。

WS000000.JPG


取得した後の用途としては以下のようなコマンド

#指定したコンテナインスタンスの"Status"を"Draining"にする

aws ecs update-container-instances-state --cluster ${CLUSTERS} \
--container-instances ${CONTAINER_INSTANCE_ID} \
--status DRAINING

参考:https://docs.aws.amazon.com/cli/latest/reference/ecs/update-container-instances-state.html

#指定したコンテナインスタンスの"RunningTask"を取得

aws ecs describe-container-instances --cluster ${CLUSTERS} \
--container-instances ${CONTAINER_INSTANCE_ID} \
--query containerInstances[].runningTasksCount

参考:https://docs.aws.amazon.com/cli/latest/reference/ecs/describe-container-instances.html

はまった点

クラスターに紐づいたコンテナインスタンスIDをAZごとに取得しようとすると以下のように出力されてしまう。

#実行コマンド

aws ecs list-container-instances \
--cluster ${CLUSTERS} \
--query containerInstanceArns[*] \
--filter "attribute:ecs.availability-zone == ${AZ}"
#出力結果

[
    "arn:aws:ecs:us-west-2:************:container-instance/********-****-****-****-************",
    "arn:aws:ecs:us-west-2:************:container-instance/********-****-****-****-************",
    "arn:aws:ecs:us-west-2:************:container-instance/********-****-****-****-************",
    "arn:aws:ecs:us-west-2:************:container-instance/********-****-****-****-************",
    "arn:aws:ecs:us-west-2:************:container-instance/********-****-****-****-************"
]

取得したいのは********-****-****-****-************となっている箇所。
リファレンスを読んでも、この箇所だけ抜き出すことができなそう。

取得方法

しょうがないので、ださいけど以下の方法で整形して取得。

#実行コマンド

aws ecs list-container-instances --cluster ${CLUSTERS} \
--query containerInstanceArns[*] \
--filter "attribute:ecs.availability-zone == ${AZ}" | \
sed "s/.\+\///g" | sed "s/[\"|\,]//g" | \
egrep -v "\[|\]"`
#出力結果

********-****-****-****-************
********-****-****-****-************
********-****-****-****-************
********-****-****-****-************
  1. sedコマンドで/より左を消す
  2. sedコマンドで行末にあるダブルクオーテーションとカンマを消す
  3. egrepコマンドで[, ]を消す
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0