Làm cách nào để kết nối báo thức đồng hồ đám mây aws với lời gọi hàm lambda?cách kết nối báo thức đồng hồ điện toán đám mây với chức năng lambda
Tôi đang lập trình thêm báo thức đồng hồ trên đám mây vào ELB mà chúng tôi tạo ra như một phần của ngăn xếp hình đám mây thông qua Mẫu CloudFormation AWS. Tôi muốn có các cảnh báo được gửi đến một hàm lambda sẽ gửi thông báo tới Slack. Mặc dù cảnh báo hoạt động, và cấu hình SNS có vẻ đúng với tôi, hàm lambda không bao giờ được gọi.
Chức năng lambda sau những ví dụ:
http://inopinatus.org/2015/07/13/hook-aws-notifications-into-slack-with-a-lambda-function/
Chức năng lambda hoạt động, và tôi có thể gửi nó kiểm tra dữ liệu thông qua giao diện điều khiển AWS kết quả trong một thông điệp được đưa lên Slack.
Bộ cân bằng tải được tạo ra với một đám mây báo động đồng hồ đúng-looking:
Các báo động dường như được cấu hình để gửi cảnh báo đến đúng SNS chủ đề:
Có đăng ký SNS cho chủ đề đó, với hàm lambda là điểm cuối:
Báo động được kích hoạt và thông điệp gửi đến các chủ đề chính xác khi các đám cháy báo động:
Nhưng chức năng lambda không bao giờ gọi:
Tuy nhiên , nếu tôi thêm chủ đề SNS làm "nguồn sự kiện" theo cách thủ công trên hàm lambda, nó là được gọi khi báo thức phát ra và tin nhắn Slack được đăng.
Am Tôi hiểu lầm như thế nào để kết nối một báo động đồng hồ đám mây để một hàm lambda? Hoặc là có một chi tiết nhỏ tôi đang mất tích?
Nếu cách tiếp cận này không thể hoạt động và cách duy nhất để kết nối chức năng lambda với báo thức trên đám mây là thêm chủ đề SNS làm "nguồn sự kiện", cách thích hợp để thực hiện điều đó thông qua Mẫu CloudFormation AWS là gì? Tôi không thấy một cách rõ ràng để sửa đổi một nguồn tài nguyên hiện có như một hàm lambda cố định.
Đây là Template CloudFormation tôi:
"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"
}
}
Cảm ơn!
-neil
Tôi đã thiết lập bản thân mình ngày hôm nay để có thể xác nhận nó hoạt động. Tôi không hiểu tại sao những gì bạn đã làm không mặc dù. –
Cảm ơn. Nó không phải là một nấc cục tạo CloudFormation, tôi đã xếp chồng lên một chồng ~ 10 lần, và kết quả là như nhau (tức là, không có lời gọi hàm lambda.) –
Đi vào CloudFormation trong bảng điều khiển và xác minh rằng Chủ đề SNS được thiết lập. Nếu xảy ra lỗi, nó sẽ xuất hiện ở đó. Bên cạnh đó, điều này có vẻ đúng với tôi ... –