如何使用AWS Cloudwatch将实例名称元数据(从标签)发送到SNS?

时间:2017-10-18 21:06:36

标签: amazon-web-services amazon-ec2 aws-lambda amazon-sns amazon-cloudwatch

我正在尝试创建一个Cloudwatch规则,在实例终止时向SNS发送EC2实例的名称(不是InstanceID)。以下代码段是AWS在我选择创建此简单规则时提供的默认事件模式,但我在" detail-type"中添加了1个部分。宾语。这部分是"实例名称"。这不起作用,因为我收到的SNS电子邮件仍然没有包含实例的名称。它只包含消息中的InstanceID。

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

到目前为止,我只是成功从Cloudwatch规则中获取了InstanceID。是否可以通过Cloudwatch检索标签中的自定义元数据?

话虽如此,如果通过Cloudwatch无法实现,是否有可能以某种方式将SNS主题发送到Lambda,并使用Lambda函数将instanceID转换为实例名称?

我的项目的重点在于我可以使用Lambda运行一个脚本,一旦它们终止,就会从监视应用程序中删除这些实例。在AWS之外,我们使用他们的名称来识别它们,而不是它们的instanceID。

1 个答案:

答案 0 :(得分:3)

无法让CloudWatch向SNS发送更多信息。您需要为SNS主题订阅Lambda函数。在Lambda函数内部,您需要使用CloudWatch消息中的实例ID进行AWS API调用,以获取实例的标记。