目的
ちょっとやりたい事があって、その準備運動としてEc2インスタンスから必要な情報をjsonに加工してみた
やってみた
cli コマンドを打つとダラダラとこんな感じ。。。。
欲しい情報はタグで設定されているインスタンス名とIDと状態
~ $ aws ec2 describe-instances
{
"Reservations": [
{
"Groups": [],
"Instances": [
{
"AmiLaunchIndex": 0,
"ImageId": "ami-xxxxxxxxxx",
"InstanceId": "i-xxxxxxxxxx",
"InstanceType": "t2.micro",
"KeyName": "aws_key_xx",
"LaunchTime": "2021-04-23T10:51:23.000Z",
<略>
"State": {
"Code": 80,
"Name": "stopped"
},
<略>
"Tags": [
{
"Key": "env",
"Value": "DEV"
},
{
"Key": "Name",
"Value": "dev01"
}
],
<略>
こうなった
jqちょろっとしか使ってないから上手く書けなかったけど、jqの出力をまたjqに。。。
とりあえずできた、わーい
~ $ aws ec2 describe-instances | jq '.Reservations[].Instances[] | [{tag: .Tags[] , id: .InstanceId , state: .State}]' | jq '.[] | select(.tag.Key == "Name") | {name: .tag.Value ,id: .id ,state: .state.Name}'
{
"name": "dev01",
"id": "i-xxxxxxxxxx",
"state": "stopped"
}
{
"name": "dev02",
"id": "i-yyyyyyyyyy",
"state": "stopped"
}
おまけ
jq のページ