0

J'essaie de créer une règle Cloudwatch qui envoie un nom d'instance EC2 (PAS l'instance ID) à SNS à la fin de l'instance. L'extrait ci-dessous est le modèle d'événement par défaut fourni par AWS lorsque j'ai choisi de créer cette règle simple, mais j'ai ajouté 1 section à l'objet "detail-type". Cette section est "Nom de l'instance". Cela n'a pas fonctionné car l'email de SNS que j'ai reçu n'incluait toujours pas le nom de l'instance. Il incluait uniquement l'ID d'instance dans le message.Comment utiliser AWS Cloudwatch pour envoyer des métadonnées de nom d'instance (à partir de balises) à SNS?

{ 
    "source": [ 
    "aws.ec2" 
    ], 
    "detail-type": [ 
    "Instance Name", 
    "EC2 Instance State-change Notification" 
    ] 
} 

Jusqu'à présent, je n'ai eu du succès avec l'acquisition de la InstanceID de la Règle CloudWatch. Les métadonnées personnalisées des balises peuvent-elles être récupérées via Cloudwatch? Cela étant dit, si cela n'est pas possible via Cloudwatch, est-il possible d'envoyer en quelque sorte la rubrique SNS à Lambda et de convertir l'instanceID en nom d'instance en utilisant une fonction Lambda?

Le but de mon projet ici est de pouvoir utiliser Lambda pour exécuter un script qui supprime ces instances d'une application de surveillance une fois qu'elles sont terminées. Et en dehors d'AWS, nous utilisons leur nom pour les identifier, et non leur instanceID.

Répondre

2

Il n'est pas possible que CloudWatch envoie plus d'informations à SNS. Vous devez souscrire une fonction Lambda à la rubrique SNS. Dans la fonction Lambda, vous devez effectuer un appel d'API AWS, avec l'ID d'instance du message CloudWatch, pour obtenir les balises de l'instance.