У меня есть несколько экземпляров в AWS. Я хочу получить эти приложения через специальный тег.
Моя команда AWS CLI
, через тег IAMOWNER
:
aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" "Name=tag:Owner,Values=IAMOWNER" --query "Reservations[*].Instances[*].[InstanceId,PrivateIpAddress,Tags[?Key=='Name'].Value[]]" --region us-west-2
Вывод этой команды:
[
[
[
"i-d21eei21e912e0e91",
"192.168.1.203",
[
"mycentralapplication-DEV-10"
]
]
],
[
[
"i-ddaswed1e12415155",
"192.168.1.210",
[
"mycentralapplication-DEV-103"
]
]
],
[
[
"i-dass1241211agh354",
"192.168.1.202",
[
"myindexapplication-DEV-53"
]
]
],
[
[
"i-2143214251assaa11",
"192.168.1.211",
[
"myserviceapplication-DEV-52"
]
]
],
[
[
"i-d2112421521assas1",
"192.168.1.207",
[
"mycentralapplication-DEV-10"
]
]
],
[
[
"i-sadas11112424111a",
"192.168.1.196",
[
"myapplication-DEV-106"
]
]
]
]
Вопрос. Как я могу получить элементы, например, mycentralapplication
через jq
библиотеку в bash
или shell
? Например, я должен получить только mycentralapplication
на выходе
[
[
[
"i-d21eei21e912e0e91",
"192.168.1.203",
[
"mycentralapplication-DEV-10"
]
]
],
[
[
"i-ddaswed1e12415155",
"192.168.1.210",
[
"mycentralapplication-DEV-103"
]
]
],
[
[
"i-d2112421521assas1",
"192.168.1.207",
[
"mycentralapplication-DEV-10"
]
]
]
]
Как я могу это сделать?
aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" "Name=tag:Owner,Values=IAMOWNER" --query "Reservations[*].Instances[*].[InstanceId,PrivateIpAddress,Tags[?Key=='Name'].Value[]]" --region us-west-2 | jq -r "mycentralapplication"
В этом случае я возвращаю ошибку. Вопрос, возможно ли решить эту задачу через jq
? Или я должен использовать grep
и т.д ...?