Nei*_*nin 13 amazon-web-services amazon-sns aws-cloudformation amazon-cloudwatch aws-lambda
如何将aws云监视警报连接到lambda函数调用?
我通过AWS CloudFormation模板以编程方式向我们创建的作为云形成堆栈一部分的ELB添加云监视警报.我希望将警报发送到lambda函数,该函数将消息发布到Slack.虽然警报有效,并且SNS配置对我来说似乎是正确的,但从不调用lambda函数.
lambda函数遵循以下示例:
http://inopinatus.org/2015/07/13/hook-aws-notifications-into-slack-with-a-lambda-function/
lambda函数工作,我可以通过aws控制台发送测试数据,从而发送一条消息发送给Slack.
使用看起来正确的云监控警报创建负载均衡器:
警报似乎配置为将警报发送到正确的SNS主题:
有一个SNS订阅该主题,lambda函数作为它的端点:
警报触发时会触发警报并将消息发送到正确的主题:
但是从不调用lambda函数:
但是,如果我在lambda函数上手动添加SNS主题作为"事件源",则会在警报触发和发布Slack消息时调用它.
我是否误解了如何将云监视报警连接到lambda函数?或者我缺少一个小细节?
如果这种方法不起作用,并且将lambda函数连接到云监视警报的唯一方法是将SNS主题添加为"事件源",通过AWS CloudFormation模板执行此操作的适当方法是什么?我没有看到修改现有资源的明显方法,例如固定的lambda函数.
这是我的CloudFormation模板:
"GenericSlackAlertSNSTopic" : {
"Type" : "AWS::SNS::Topic",
"Properties" : {
"Subscription" : [ {
"Endpoint" : "arn:aws:lambda:us-east-1:[...]:function:snsToSlack",
"Protocol" : "lambda"
} ]
}
},
"ELBNoTrafficAlarm": {
"Type": "AWS::CloudWatch::Alarm",
"Properties": {
"Namespace" : "AWS/ELB",
"AlarmDescription": "Alarm for no apparent traffic on an ELB.",
"AlarmActions": [{
"Ref": "GenericSlackAlertSNSTopic"
}],
"InsufficientDataActions": [{
"Ref": "GenericSlackAlertSNSTopic"
}],
"MetricName": "RequestCount",
"Statistic": "Sum",
"Dimensions" : [ {
"Name" : "LoadBalancerName",
"Value" : { "Ref" : "ElasticLoadBalancer" }
} ],
"Period": "60",
"EvaluationPeriods": "3",
"Threshold" : "10",
"ComparisonOperator": "LessThanOrEqualToThreshold"
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
-neil
AWS(~3天前)发布了一个蓝图,用于在python和nodejs中使用lambda与AWS Cloudwatch进行松散集成:https://aws.amazon.com/blogs/aws/new-slack-integration-blueprints-for-aws -Lambda /
话虽如此,我也遇到了和你一样的问题,按照蓝图中提到的步骤,我没有得到警报,直到我手动将SNS主题添加为lambda函数的"事件源".进一步的调查引导我提出这个问题:无法使用CloudFormation在Lambda函数上创建SNS事件源
最后阅读AWS文档:1)http://docs.aws.amazon.com/lambda/latest/dg/intro-core-components.html
Amazon SNS通过主题订阅配置维护事件源映射(没有AWS Lambda API来配置此映射).
2)http://docs.aws.amazon.com/sns/latest/dg/sns-lambda.html
使用AWS管理控制台配置带有Lambda端点的Amazon SNS
得出结论,此刻的订阅应该通过AWS管理控制台完成
简介:目前,使用Lambda端点配置Amazon SNS的唯一方法是通过AWS管理控制台
奖励:类似的问题和相同的答案:AWS Lambda通过cloudformation安排了事件源
| 归档时间: |
|
| 查看次数: |
13970 次 |
| 最近记录: |