首页 > 解决方案 > 使用 cli 将触发器添加到 lambda 函数

问题描述

我正在尝试使用 cli 向 lambda 版本添加触发规则:

我尝试以下命令:

aws events put-targets --rule rule-name --targets "Id"="1","Arn"="arn..."

此命令成功运行,我可以在目标下的事件桥控制台中看到我的 lambda 函数。但是当我转到 lambda 函数和版本时,我没有看到添加任何触发事件。

我不确定这是错误/错误还是预期的行为。有没有办法将触发事件添加到 lambda 函数的已发布版本,以便它使用 aws cli 在触发控制台中显示(本质上是显示触发事件已成功添加)。

标签: amazon-web-servicesaws-lambdaaws-cli

解决方案


使用 CDK。它会工作

使用 cdk 创建一个 lambda 函数和一个规则。然后您可以将该规则添加到 lambda。

这适用于 CDK。但正如你所说,它不适用于 CLI。触发器不会添加到 lambda 中。

示例代码: 注意:这不是完整的 CDK 代码。这只是创建 lambda,rule 并将其添加到 lambda 的部分。这个例子是在 Python

        fn = lambda_.Function(self, "Name",
            runtime=lambda_.Runtime.PYTHON_3_7,
            handler="index.lambda_handler",
            role=custom_role,
            code=lambda_.Code.from_asset(
                os.path.join(
                    up_dir(__file__, 2),
                    "resources/lambda/pathtoyourcode",
                )
            ),
        )

        # Run Every Minute
        run_every_minute = _events.Rule(
            self,
            "runEveryMinute",
            schedule=_events.Schedule.rate(core.Duration.minutes(1))
        )

        # Add Lambda to CW Event Rule
        run_every_minute.add_target(_targets.LambdaFunction(fn))

推荐阅读