Como adicionar uma tag a uma instância EC2 fiada em escala automática usando o boto?

4

Alguém sabe como marcar uma ocorrência do EC2 spun Autoscale da AWS via boto? Eu gostaria que todas as instâncias do Autoscale EC2 tivessem um prefixo 'as -'.

Obrigado

    
por Binary Maze 21.08.2012 / 06:21

1 resposta

6

Eu percebi isso.

Você atribui uma tag "Nome" a um grupo do AWS Autoscale após sua criação. O truque é definir o sinalizador 'propagate_at_launch' como True ao transmiti-lo ao objeto Tag Autoscale. Esse sinalizador, quando definido como True, garante que a tag seja aplicada a qualquer instância EC2 girada em escala automática após a criação da tag. Segue um exemplo:

import boto
from boto.ec2.autoscale import Tag

# Make sure your access keys are stored in ~/.boto
conn = boto.connect_autoscale()

# This assumes you have already setup an elastic load balancer
# and a launch configuration
ag = AutoScalingGroup(group_name=group_name,
                      load_balancers=[load_balancer],
                      availability_zones=availability_zones,
                      launch_config=config,
                      min_size=min_size,
                      max_size=max_size)

# Create auto scaling group
conn.create_auto_scaling_group(ag)

# Fetch the autoscale group after it is created
auto_scaling_group = conn.get_all_groups(names=[group_name])[0]

# Create a Tag for the austoscale group
as_tag = Tag(key='Name',
             value = 'as-instance',
             propagate_at_launch=True,
             resource_id=group_name)

# Add the tag to the autoscale group
conn.create_or_update_tags([as_tag])

Voila! Agora, sempre que uma instância do EC2 é girada deste grupo de Autoscale com base nos Alarmes do CloudWatch, ou seja, dimensionada com base nos limites de utilização da CPU ou em alguma outra métrica ... essa instância terá um valor de nome = 'as-instance'

Felicidades

    
por 22.08.2012 / 06:17

Tags