Exp*_*rer 3 aws-lambda terraform
作为使用 terraform 部署 Lambda 函数的一部分,我需要为热回调事件创建一个云监视事件。
我可以轻松地从前端创建它,但由于需要 input_transformer 配置,所以我很难从后端创建它。
有这样的例子吗?
下面是我用来创建 cloudwatch 事件以使用 input_transformer 进行热回调的配置。
resource "aws_cloudwatch_event_rule" "flask-apis-cloudwatch-terraform" {
name = "warm_call_back_flask_apis"
description = "Keep Warm Callback function for flask-apis"
schedule_expression = "rate(4 minutes)"
role_arn = "${aws_iam_role.lambda_exec_flask.arn}"
}
resource "aws_cloudwatch_event_target" "flask-apis-cloudwatch-terraform-target" {
rule = "${aws_cloudwatch_event_rule.flask-apis-cloudwatch-terraform.name}"
target_id = "${aws_lambda_function.flask-apis.function_name}"
arn = "${aws_lambda_function.flask-apis.arn}"
input_transformer = {
input_paths = {"detail-type"="$.detail-type","resources"="$.resources","detail"="$.detail","id"="$.id","source"="$.source","time"="$.time","region"="$.region","version"="$.version","account"="$.account"}
input_template = <<INPUT_TEMPLATE_EOF
{
"time":<time>,
"detail-type": <detail-type>,
"source": <source>,
"account": <account>,
"region": <region>,
"detail": <detail>,
"version": <version>,
"resources": <resources>,
"id": <id>,
"kwargs": {}
}
INPUT_TEMPLATE_EOF
}
}
resource "aws_lambda_permission" "allow_cloudwatch_to_call_flask-apis" {
statement_id = "AllowExecutionFromCloudWatch"
action = "lambda:InvokeFunction"
function_name = "${aws_lambda_function.flask-apis.arn}"
principal = "events.amazonaws.com"
source_arn = "${aws_cloudwatch_event_rule.flask-apis-cloudwatch-terraform.arn}"
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5680 次 |
最近记录: |