0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

aws-cliでCloudWatch Alarmをタグベースでフィルタしたい

Last updated at Posted at 2023-07-29

CloudWatch Alarmは登録したアラームにタグをつける事ができます。

タグ付けできるので、aws-cliでアラーム一覧を取得してタグでフィルタすることも簡単にできるかと思いきや……

なんとaws-cliのaws cloudwatch describe-alarmsではCloudWatch Alarmの一覧は取得できますが、ここにタグ情報はふくまれてない事に気が付きました。

この事に気がつく前は、aws ec2 describe-instancesのように、一覧とタグ情報が一度に引けて簡単にフィルタ処理できるかと考えていましたが、Cloud Watch Alarmだとそうはできなかったので本記事で紹介します。

ドキュメント

describe-alarms

get-resources

AWS リソースのタグ管理 〜タグ付けと統制〜(後編)

aws cloudwatch describe-alarms にはタグ情報がない!

describe-alarms

list-tags-for-resource

2023年7月現在コマンドのドキュメントを確認すると、最初に気が付きますがアラームの一覧を取得できるdescribe-alarmsoutputTagsがありません。

当然のようにタグ情報を取得できると考えてしまいますが、これがないのはCloudWatch Alarm自体へのタグ付けが最初からサポートされていたわけではなかった歴的な背景がありそうです。

Amazon CloudWatch アラームにリソースレベルポリシーを使用できるようになりました

でもタグフィルタしたい

そもそもCloudWatch Alarmのタグ情報はdescribe-alarmsでは取得できず、list-tags-for-resourceで取得できます。

list-tags-for-resource

ただし、list-tags-for-resourceは必須引数として--resource-arnを指定する形となり、アラーム一覧をタグでフィルタしたいといった用途に使うためには。

describe-alarmsCloudWatch Alarmの一覧を取得し、それをベースに一アラームずつlist-tags-for-resourceでタグ情報を取得する必要があります。

この方式だと、CloudWatch Alarmの登録された個数回、list-tags-for-resourceを実行する必要があり残念な感じです。

resourcegroupstaggingapiからせめてみる

aws-cliではタグを取り扱う、resourcegroupstaggingapiもあるのでこちらからせめてみます。

aws resourcegroupstaggingapi get-resourcesでAWSリソースのタグを取得できます。

このコマンドのオプションにresource-type-filtersがあり、このオプションでサポートされているサービスは下記の一覧となります。

Services that support the Resource Groups Tagging API

AWS Resource Groupsとタグエディタで使用できるリソースタイプ Amazon CloudWatch

この中に、Amazon CloudWatch (alarms only)と記載されており、アラームの情報だけ取得できます。

aws resourcegroupstaggingapi get-resources --resource-type-filters cloudwatch:alarm --tag-filters Key=Name,Values=qiita

image.png

aws resourcegroupstaggingapi get-resourcesからせめたとによって、CloudWatch Alarmをタグでフィルタし,CloudWatch AlarmのARNを取得できました。

総評

過去の経緯? からdescribe-alarmsにタグ情報が含まれていないのは残念でしたが、リソースタグの方向からなんとかフィルタできました。

ただしタグで取得したアラームに対して、変更操作をしたい場合。

delete-alarms等は必須パラメータがalarm-namesとなっており、arnではないので取得したarnをそのまま使えず、ひと手間追加で必要となる点はやっぱうまくいかない感があります。

0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?