@moblybr/node-event-bridge-client
v2.0.0
Published
Pacote para uso do EventBridge da AWS
Downloads
82
Keywords
Readme
@mobly/packages/node/event-bridge-client
Event Bridge
Instalação do pacote
npm i @moblybr/node-event-bridge-client
Executando
É só importar o eventBridge no lambda de publish e executar a função.
create.js - publish
import { publishEvent } from '@moblybr/node-event-bridge-client'
const handler = middy(async (event, context) => {
...
// Usar Event Bridge
const params = {
headers: {user_status: ‘created’},
message: { name: 'User number 1', status: 'Online', gender: 'male' },
eventName: 'created',
eventBusName: 'eventBustest',
source: 'Mobly.ProductService',
configEventBridge: { region: 'us-east-1' }
}
await publishEvent(messageEvent)
}
O subscriber do eventBridge recebendo a informação, acessamos a via event.detail
.
created.js - subscriber
const handler = middy(async (event, context) => {
...
const body = event.detail
console.log(body)
}
Métodos
publishEvent(params)
Parâmetros
headers: `object`,
message: `string` or `object`
eventName: `string`
eventBusName: `string`
source: `string`
configEventBridge: `object` (opcional)
headers
Campo disponível para os Messages Attributes usados na aplicação via SNS/SQS.
message
É a mensagem a ser transmitida via evento, sendo uma string ou um objeto JSON.
eventName
É o nome do evento disparado.
eventBusName
É o nome do eventBus usado para acessar os event desse bus específico.
source
É informado para identificar o serviço que gerou o evento.
configEventBridge
É usado para informar a região do eventBridge, por padrão é a us-east-1.
Configuração do evento no serverless.yml
É necessário dar permissões aos lambdas que irão usar o eventBridge, tanto para publicar quanto para receber o evento.
A configuração do iamRoleStatements
é definida em cada lambda.
lambda publisher no serverless.yml
functions:
createUser:
handler: create.handler
iamRoleStatements:
- Effect: "Allow"
Resource: "*"
Action:
- "events:TestEventPattern"
- "events:ListRules"
- "events:PutEvents"
Quando criamos um lambda para receber o evento, precisamos configurar o evento de trigger junto com suas permissões.
lambda subscriber no serverless.yml
functions:
userCreated:
handler: created.handler
iamRoleStatements:
- Effect: "Allow"
Resource: "*"
Action:
- "events:TestEventPattern"
- "events:ListRules"
events:
- eventBridge:
eventBus: eventBustest
pattern:
source:
- user.created