Использование AWS ResourceGroupsTaggingAPI Я пытаюсь отфильтровать возвращенный список массивов или структур, массивов и т. Д., Например.
мой код
client = Aws::ResourceGroupsTaggingAPI::Client.new(credentials: profile, region: region)
pagination = nil
loop do
response = client.get_resources({ etc etc
Я передаю три тега и получаю список ресурсов обратно ОК, но я не хочу всю информацию, я хочу отфильтровать список, чтобы яможет иметь только «Имена» или только арнс, вывод одного элемента ниже.
resource_arn=
"arn:aws:ec2:eu-west-2:blahblah:instance/i-blahblah",
tags=
[#<struct Aws::ResourceGroupsTaggingAPI::Types::Tag
key="Name",
value="VTX-EU : Non-Prod : QA1 : CoreStack">,
#<struct Aws::ResourceGroupsTaggingAPI::Types::Tag
key="Qualys-CloudAgent",
value="VTX-EU : Non-Prod : QA1">,
#<struct Aws::ResourceGroupsTaggingAPI::Types::Tag
key="app",
value="corestack">,
#<struct Aws::ResourceGroupsTaggingAPI::Types::Tag key="env", value="qa">,
#<struct Aws::ResourceGroupsTaggingAPI::Types::Tag key="group", value="1">,
#<struct Aws::ResourceGroupsTaggingAPI::Types::Tag
key="os",
value="windows">]>]
И так как я не очень хорош в Ruby, я не знаю, как отфильтровать вывод, чтобы показать только Имя, поэтому я выводил список имен экземпляров или любой другой тег, а затем либо выводилданные, или использовать его в другом вызове другого API.
Может ли кто-нибудь помочь с логикой, потому что мне, кажется, не хватает способности выяснить, как получить нужную информацию.
в aws метод является response.resourceresource_tag_mapping_list, мне кажется, является комбинацией циклов select и вложенных, возможно, ссылающихся на конкретные элементы в массиве / s.
Большое спасибо
ОБНОВЛЕНИЕ: ТАК, это куча массивов и структур, (извините, я знаю, что это говорит об этом в выводе), если я делаю
response.resource_tag_mapping_list[0][:tags][0][:value]
Я получаю
"VTX-EU : Non-Prod : QA1 : CoreStack"
, однако делая это
response.resource_tag_mapping_list.each { |e| puts e[:tags][0][:value]}
Получает почти то же самое, что я написал выше.
спасибо.