buscar o nome do grupo de escalonamento automático no AWS

6

Gente,   Estou escrevendo um script que exportará as tags para uma instância em execução como variáveis de ambiente.   Problema com grupos de escalonamento automático, é que essas tags não estão disponíveis para a instância.

Como alguém sabe a qual grupo de escalonamento automático pertence uma instância via comandos api / aws cli? Eu preciso usar tags de instância em scripts, no entanto, eles não estão disponíveis. Sugestões?

Obrigado!

    
por CMag 26.12.2014 / 05:43

2 respostas

6

How does one know which autoscaling group an instance belongs to via api/aws cli commands?

Você pode usar o comando autoscaling describe-auto-scaling-instances junto com a opção --instance-ids , assim:

aws autoscaling describe-auto-scaling-instances --instance-ids="i-zzxxccvv"

Problem with autoscaling groups, is that these tags are not available to the instance. [...] I need to use instance tags in scripts, however, they are not available. Suggestions?

Estou interpretando isso como você deseja obter as tags do grupo de autoescala do qual a instância pertence? Usando o AutoScalingGroupName retornado do comando mostrado acima, você pode usar o seguinte comando:

aws autoscaling describe-tags --filters Name=auto-scaling-group,Values=name-of-the-auto-scaling-group-here
    
por 26.12.2014 / 15:37
5

A maneira mais simples de encontrar o grupo de autoescala de uma instância é examinar as tags. Todas as instâncias em um grupo de escalonamento automático terão uma tag chamada aws:autoscaling:groupName que contém o nome do grupo. Você pode recuperar essa tag usando o seguinte comando:

aws ec2 describe-tags --filters "Name=resource-id,Values=${INSTANCE}" "Name=key,Values=aws:autoscaling:groupName"

Então você pode pegar as tags conforme descrito por Bazze.

Uma solução alternativa para isso é propagar as tags do grupo de autoescala para a instância.

Se você estiver usando cloudformation para criar o ASG, defina "PropagateAtLaunch": "true" para cada tag que deseja propagar (consulte Docs Aws Cloud Formation ).

Se você estiver criando o grupo manualmente, verifique a caixa "Marcar novas instâncias" para cada tag.

Depois de fazer isso, as tags serão copiadas para a instância e você pode simplesmente inspecionar as tags da sua instância usando o comando describe tags:

aws ec2 describe-tags --filters "Name=resource-id,Values=${INSTANCE}"

Acho jq útil para processar a saída da ferramenta aws cli. Por exemplo, o comando a seguir produz uma lista key=value do JSON:

aws ec2 describe-tags --filters "Name=resource-id,Values=${INSTANCE}" | jq -r '.Tags[] | @text "\(.Key)=\(.Value)"'
    
por 30.05.2015 / 15:50