⛳
EC2の中から自分に設定されたNameタグを取得する(IMDSv2のTOKENを必要としないパターン)
EC2の中から自分に設定されたNameタグを取得する方法です。
Metaデータの取得方法がIMDSv2(インスタンスメタデータサービスv2)になってからTOKENの取得が必要になり1行で実行するには長くなるので、IMDSを使わないパターンにしました。
結果
こうです。
aws ec2 describe-tags --filters "Name=resource-id,Values=$(ec2-metadata -i --quiet)" "Name=key,Values=Name" --query Tags[].Value --output text
ポイント
- aws ec2 describe-tags コマンドでタグを取得する場合、
resource-id
の指定が必要 - 幾つかのウェブサイトを見てもresource-idに指定するインスタンス ID 取得のためにIMDSv2を使っている所がほとんどで、そのためコマンドが長くなっていた
- 実はEC2に標準で入っているec2-metadataコマンドでインスタンス ID を取得できるので、インスタンス ID取得部分をec2-metadataコマンドに置き換えてコマンド全体を短くしている
- ec2-metadataでタグも取得できるんだけど、指定のタグ名でフィルタするオプションが無かったのでdescribe-tagsで取得してる。
Discussion