我有一个定制的事件总线,对于每个订阅Lambda的人,我必须定义要使用的总线。
例如:
functions:
hello:
handler: src/handlers/hello.main
events:
- eventBridge:
eventBus: 'arn:aws:events:#{AWS::Region}:#{AWS::AccountId}:event-bus/events-${opt:stage}'
pattern:
source:
- dynamodb-stream
world:
handler: src/handlers/world.main
events:
- eventBridge:
eventBus: 'arn:aws:events:#{AWS::Region}:#{AWS::AccountId}:event-bus/events-${opt:stage}'
pattern:
source:
- dynamodb-stream可以在提供者级别定义它吗?
例如:
provider:
eventBridge:
eventBus: 'arn:aws:events:#{AWS::Region}:#{AWS::AccountId}:event-bus/events-${opt:stage}'通常,这种模式是存在的,但它不在文档中。
发布于 2020-07-02 19:20:50
如果您在yml文件中有重复的属性,最好使用anchors
functions:
hello:
handler: src/handlers/hello.main
events: &funcEvents
- eventBridge:
eventBus: 'arn:aws:events:#{AWS::Region}:#{AWS::AccountId}:event-bus/events-${opt:stage}'
pattern:
source:
- dynamodb-stream
world:
handler: src/handlers/world.main
events: *funcEvents但是,不幸的是,您不能在提供者级别上定义它。
为了使函数声明保持干净,在自定义部分中定义ARN,如下所示:
functions:
hello:
handler: src/handlers/hello.main
events: &funcEvents
- eventBridge:
eventBus: ${self:custom.eventBusArn}
pattern:
source:
- dynamodb-stream
world:
handler: src/handlers/world.main
events: *funcEvents
custom:
eventBusArn: arn:aws:events:#{AWS::Region}:#{AWS::AccountId}:event-bus/events-${opt:stage}https://stackoverflow.com/questions/62021834
复制相似问题