Я ищу группы автомасштабирования по тегам - ко всем нашим ресурсам AWS применен ряд тегов. Однако я хочу найти только группы автоматического масштабирования, а не другие типы ресурсов.
Это должно быть возможно с использованием API тегов; из командной строки:
aws resourcegroupstaggingapi get-resources --resource-type-filters=autoscaling
Однако это приводит к ошибке: Unsupported service=autoscaling in ResourceTypeFilter
. Он отлично работает с фильтрами других типов ресурсов, такими как ec2
.
(Обратите внимание, что если указать более конкретную --resource-type-filters=autoscaling:autoScalingGroup
приводит к той же ошибке)
Я также заметил, что если я действительно ищу теги, не ограничивая тип ресурса автоматическим масштабированием, я не получаю никаких ARN групп автомасштабирования в ответе.
Есть ли какой-либо (другой) способ поиска групп с автоматическим масштабированием по тегам в API AWS?
Причина в том, что я хочу создать пользовательские метрики для ряда сервисов, и мне нужно найти правильные группы автоматического масштабирования по определенному набору тегов, чтобы иметь возможность извлекать и помещать метрики CloudWatch с измерением метрики AutoScalingGroupName для каждой из них.
К сожалению, вы не можете использовать aws recourcegroupstaggingapi
просто потому, что этот API не поддерживает группы AutoScaling в данный момент. Вот почему информация об AutoScaling не возвращается в get-resources
результаты как вы заметили. Видеть Пометка групп ресурсов »Справочник по API для фактического API и поддерживаемых ресурсов. Обратите внимание, что AutoScaling не является часть EC2 API. Почему это ограничение? Не знаю, спросите у Amazon;)
Однако с небольшим количеством jq
хакерство, которое вы можете использовать aws autoscaling describe-auto-scaling-groups
как обходной путь:
~ $ aws autoscaling describe-auto-scaling-groups | jq -r '
## Unfold .Tags[] to .TagKey = Value
.[keys[0]] | map(
if has("Tags") then
. += (.Tags | map( { "Tag\(.Key)": (.Value) } ) | add | del(.Tags))
else
.
end
)[] |
## TagKey == Value you want to select on (e.g. Name=="wiki-3" in my case)
select(.TagName == "wiki-3") |
## The attribute you want to output (e.g. .AutoScalingGroupName or .AutoScalingGroupARN)
.AutoScalingGroupName
'
Надеюсь, это поможет :)