gpt4 book ai didi

amazon-web-services - aws terraform cloudwatch 规则作为 lambda 触发器

转载 作者:行者123 更新时间:2023-12-03 15:29:45 30 4
gpt4 key购买 nike

我正在尝试配置将在特定日期/时间触发 lambda 函数的 cloudwatch 规则,如下所示:

resource "aws_lambda_function" "cleanup_daily" {
filename = "name"
function_name = "name"
role = "arn<removed>"
handler = "snapshotcleanup.lambda_handler"
source_code_hash = "${base64sha256(file("file_name"))}"
runtime = "python2.7"
timeout = "20"
description = "desc"
}

resource "aws_cloudwatch_event_rule" "daily_rule" {
name = "name"
description = "desc"
schedule_expression = "cron(....)"
}

resource "aws_cloudwatch_event_target" "daily_target" {
rule = "${aws_cloudwatch_event_rule.daily_rule.name}"
arn = "${aws_lambda_function.cleanup_daily.arn}"
}

但是 lambda 函数不会运行。如果我查看 lambda 并检查触发器选项卡,那里什么也没有。如果我查看 cloudwatch 规则并查看目标下,则会显示 lambda 函数,如果我单击它,我将被重定向到该函数本身。任何想法这里可能有什么问题?

对于其中一个 cloudwatch 规则,我点击了编辑 -> 保存 -> 配置详细信息 -> 更新而不更改任何内容,现在显示在 lambda 的触发器选项卡下,但仍然需要让其他规则在没有此步骤的情况下工作,

最佳答案

每当不同的 AWS 服务交互时,就必须使用 AWS IAM 授予它们必要的访问权限。

在这种情况下,Cloudwatch Events 需要有权执行相关的 Lambda 函数。

the AWS tutorial的第2步介绍如何使用 AWS CLI 执行此操作。等效于 aws lambda add-permission 的 Terraform命令是 the aws_lambda_permission resource ,它可以与问题中的配置示例一起使用,如下所示:

data "aws_caller_identity" "current" {
# Retrieves information about the AWS account corresponding to the
# access key being used to run Terraform, which we need to populate
# the "source_account" on the permission resource.
}

resource "aws_lambda_permission" "allow_cloudwatch" {
statement_id = "AllowExecutionFromCloudWatch"
action = "lambda:InvokeFunction"
function_name = "${aws_lambda_function.cleanup_daily.function_name}"
principal = "events.amazonaws.com"
source_account = "${data.aws_caller_identity.current.account_id}"
source_arn = "${aws_cloudwatch_event-rule.daily_rule.arn}"
}

AWS Lambda 权限是对 IAM 角色和策略的抽象。有关 IAM 角色和策略的一些一般背景信息,请参阅 my longer answer to another question需要更多手动配置的地方。

关于amazon-web-services - aws terraform cloudwatch 规则作为 lambda 触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44287186/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com