AWS CLI filterとqueryを同時に指定する方法を理解する

          図A AWSシステム構成図
コマンド例 コマンド実行結果のjson形式を jqで成形します。

例1 インスタンスタイプ(t3a.micro)を抽出し,そのフィールドを出力
aws ec2 describe-instances \
--filters Name=instance-type,Values=t3a.micro \
--query 'Reservations[*].Instances[*].{Type:InstanceType}' | jq .


例2 インスタンスタイプ(t3a.micro)のみ抽出し,インスタンスタイプ,Name Tagを出力
aws ec2 describe-instances \
--filters Name=instance-type,Values=t3a.micro \
--query 'Reservations[*].Instances[*].{Type:InstanceType,Name:Tags[?Key==`Name`].Value}' | jq .


例3 インスタンスタイプ(t3a.micro 又は t3.micro)を抽出し,インスタンスタイプ,Name Tagを出力
aws ec2 describe-instances \
--filters Name=instance-type,Values=t3a.micro,t3.micro \
--query 'Reservations[*].Instances[*].{Type:InstanceType,Name:Tags[?Key==`Name`].Value}' | jq .



例4 インスタンスの状態(running 又は stopped)を抽出し,インスタンスタイプ,Name Tag,状態(State)を出力
aws ec2 describe-instances \
--filters Name=instance-state-name,Values=running,stopped \
--query 'Reservations[*].Instances[*].{Type:InstanceType,Name:Tags[?Key==`Name`].Value,State:State.Name}' | jq .


例5 インスタンスの状態(running 又は stopped)を抽出し,インスタンスタイプ,プラットフォームOS,Name Tag,状態(State)を出力
aws ec2 describe-instances \
--filters Name=instance-state-name,Values=running,stopped \
--query 'Reservations[*].Instances[*].{Type:InstanceType,OS:PlatformDetails,Name:Tags[?Key==`Name`].Value,State:State.Name}' | jq .
例6 インスタンスタイプ(t3.micro)で,かつ,インスタンスがstopedを抽出し,インスタンスタイプ,Name Tag,状態(State)を出力
aws ec2 describe-instances \
--filters Name=instance-type,Values=t3.micro \
Name=instance-state-name,Values=stopped \
--query 'Reservations[*].Instances[*].{Type:InstanceType,Name:Tags[?Key==`Name`
].Value,State:State.Name}' | jq .


例7 インスタンスタイプ(t3.micro)で,かつ,インスタンスがstopedを抽出し,インスタンスタイプ,プラットフォームOS,Name Tag,状態(State)を出力
aws ec2 describe-instances \
--filters Name=instance-type,Values=t3.micro \
Name=instance-state-name,Values=stopped \
--query 'Reservations[*].Instances[*].{Type:InstanceType,OS:PlatformDetails,Name:Tags[?Key==`Name`].Value,State:State.Name}' | jq .


例1 インスタンスタイプ(t3a.micro)のみ抽出し,インスタンスタイプのフィールドのみ出力の実行結果 一部のみ掲載
[
[
{
"Type": "t3a.micro"
}
],
[
{
"Type": "t3a.micro"
}
]

例2 インスタンスタイプ(t3a.micro)のみ抽出し,インスタンスタイプ,Name Tagを出力の実行結果 一部のみ掲載
[
[
{
"Type": "t3a.micro",
"Name": [
"Ama-linux2-kamishita"
]
}
],
[
{
"Type": "t3a.micro",
"Name": [
"Ama_linux2_Redmine_MySQL"
]
}
]
例3 インスタンスタイプ(t3a.micro 又は t3.micro)を抽出し,インスタンスタイプ,Name Tagを出力の実行結果 一部のみ掲載
[
{
"Type": "t3.micro",
"Name": [
"kamishita-docker-python"
]
}
],
[
{
"Type": "t3a.micro",
"Name": [
"Ama_linux2_Redmine_MySQL"
]
}
]
例4 インスタンスの状態(running 又は stopped)を抽出し,インスタンスタイプ,Name Tag,状態(State)を出力の実行結果 一部のみ掲載
[
{
"Type": "t3a.micro",
"Name": [
"Ama_linux2_Redmine_MySQL"
],
"State": "running"
}
],
[
{
"Type": "t3a.micro",
"Name": [
"kamishita_linux2023_private"
],
"State": "stopped"
}
]

例5 インスタンスの状態(running 又は stopped)を抽出し,インスタンスタイプ,プラットフォームOS,Name Tag,状態(State)を出力の実行結果 一部のみ掲載
{
"Type": "t3a.micro",
"OS": "Linux/UNIX",
"Name": [
"Ama_linux2_Redmine_MySQL"
],
"State": "running"
}
],
[
{
"Type": "t3a.micro",
"OS": "Linux/UNIX",
"Name": [
"debug-docker-kamishita"
],
"State": "stopped"
}
]
例6 インスタンスタイプ(t3.micro)で,かつ,インスタンスがstopedを抽出し,インスタンスタイプ,Name Tag,状態(State)を出力の実行結果
[
[
{
"Type": "t3.micro",
"Name": [
"kamishita-docker-python"
],
"State": "stopped"
}
],
[
{
"Type": "t3.micro",
"Name": [
"kamishita_Public_AMA2023"
],
"State": "stopped"
}
]
]

例7 インスタンスタイプ(t3.micro)で,かつ,インスタンスがstopedを抽出し,インスタンスタイプ,プラットフォームOS,Name Tag,状態(State)を出力の実行結果
[
[
{
"Type": "t3.micro",
"OS": "Linux/UNIX",
"Name": [
"kamishita-docker-python"
],
"State": "stopped"
}
],
[
{
"Type": "t3.micro",
"OS": "Linux/UNIX",
"Name": [
"kamishita_Public_AMA2023"
],
"State": "stopped"
}
]
]