aws-lambda - 如何在 SAM 模板中为 lambda 函数定义多个触发器?
问题描述
我从 SAM 模板创建了一个 lambda 函数,并定义了多个触发器,但在 cloudformation 中只创建了其中一个触发器。这是我的山姆模板:
Myfunc:
Type: AWS::Serverless::Function
Properties:
FunctionName: name
CodeUri: /
Handler: app.lambdaHandler
Runtime: nodejs12.x
Role: myrole
Events:
Trigger:
Type: CloudWatchEvent
Properties:
EventBusName: mybus
Pattern:
source:
- a
detail-type:
- b
Trigger:
Type: CloudWatchEvent
Properties:
EventBusName: mybus
Pattern:
source:
- c
此模板正确部署但仅创建一个规则,并且在 aws 控制台中,它显示在 sam 模板上:
Events:
Trigger:
Type: CloudWatchEvent
Properties:
EventBusName: mybus
Pattern:
source:
- c
知道如何在 sam 模板中为 lambda 定义多个触发器吗?这是不可能的吗?
解决方案
Events 字段是一个字典,因此您必须为触发器提供不同的名称,如下所示:
Events:
Trigger:
Type: CloudWatchEvent
Properties:
EventBusName: mybus
Pattern:
source:
- a
detail-type:
- b
TriggerForSourceC:
Type: CloudWatchEvent
Properties:
EventBusName: mybus
Pattern:
source:
- c
推荐阅读
- javascript - 需要依次调用多个api,在javascript中一个接一个
- r - 如何重新排列R中输入错误的数据?
- c# - WinUI 3.0 - UWP:WebView2 打印功能出错
- java - Jackson 自定义的反序列化运行时异常被 JsonMappingException 包裹
- php - 如何为 -i -t 选项将 Curl 命令转换为 php
- html - 用 DraftJS 中的 span 替换所有根 div 元素?
- android-studio - 有谁知道下载android studio时SHA-256校验和的含义是什么?
- javascript - Laravel - 检查数据是否存在于javascript中的数据库中
- c# - C# 计算总权重
- node.js - 使用 nvm 安装自定义 npm 版本