Zamanlanmış olay kaynağını (olay kuralı) lambda işlevinize bağlamak için aws_cloudwatch_event_target
kaynağını kullanabilirsiniz. Lambda işlevini çağırmak için izin vermeniz gerekir; Bunun için bir aws_lambda_permission
kaynağını kullanabilirsiniz.
Örnek: hala etkinleştirmek zorunda
olsa da kural durumu "ETKİN" diyor:
konsolunda
resource "aws_lambda_function" "check_foo" {
filename = "check_foo.zip"
function_name = "checkFoo"
role = "arn:aws:iam::424242:role/something"
handler = "index.handler"
}
resource "aws_cloudwatch_event_rule" "every_five_minutes" {
name = "every-five-minutes"
description = "Fires every five minutes"
schedule_expression = "rate(5 minutes)"
}
resource "aws_cloudwatch_event_target" "check_foo_every_five_minutes" {
rule = "${aws_cloudwatch_event_rule.every_five_minutes.name}"
target_id = "check_foo"
arn = "${aws_lambda_function.check_foo.arn}"
}
resource "aws_lambda_permission" "allow_cloudwatch_to_call_check_foo" {
statement_id = "AllowExecutionFromCloudWatch"
action = "lambda:InvokeFunction"
function_name = "${aws_lambda_function.check_foo.function_name}"
principal = "events.amazonaws.com"
source_arn = "${aws_cloudwatch_event_rule.every_five_minutes.arn}"
}
Herhangi bir ipucu? Konsolda bulut izleme olayları kuralının doğru olduğunu ve lambda konsolunda bir tetikleyici olarak listelendiğini görebiliyorum. Zamanlayıcı ateş ediyor gibi görünüyor, ancak çağrılar başarılı değil ve lambda'nın cloudwatch günlüklerinde çağrıldığına dair bir kanıt göremiyorum. Cloudwatch olay zamanlayıcısının kendisi için herhangi bir günlük var mı? –