amazon-web-services - 使用 cli 将触发器添加到 lambda 函数
问题描述
我正在尝试使用 cli 向 lambda 版本添加触发规则:
我尝试以下命令:
aws events put-targets --rule rule-name --targets "Id"="1","Arn"="arn..."
此命令成功运行,我可以在目标下的事件桥控制台中看到我的 lambda 函数。但是当我转到 lambda 函数和版本时,我没有看到添加任何触发事件。
我不确定这是错误/错误还是预期的行为。有没有办法将触发事件添加到 lambda 函数的已发布版本,以便它使用 aws 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))
推荐阅读
- buck - 访问 Buck 中 genrule 给出的路径下的文件
- python - 将字典键/值添加到列表理解
- javascript - javascript 更改全局变量 setTimeout
- ios - 优化将 MTLTexture 渲染到 Display 的性能?
- python - 无法导入python模块pyo
- git - 从 GitLab 和 Bitbucket 移动存储库,如何测试这个过程是否正确完成?(包括历史、标签、提交等)
- r - 将数据帧拆分为多个然后应用一个函数,使用 for 循环
- regex - 正则表达式,用于在双数之后和 2 个或多个空格之前使用一个或多个单词解析名称
- sql - 在多个 (N) 表之间拆分数据是否会导致查询期间的线性或指数减速?
- javascript - 在 html 页面上呈现时移动数组项