Могу ли я определить eventBus на уровне провайдера? - PullRequest
0 голосов
/ 26 мая 2020

У меня есть настраиваемая шина событий, и для каждой подписывающейся лямбды я должен определить, какую шину использовать.

Например:

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}'

Обычно этот шаблон существует, но его нет в документации.

1 Ответ

1 голос
/ 02 июля 2020

Если у вас есть повторяющиеся свойства в вашем файле 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}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...