@moblybr/node-event-bridge-client

2.0.0 • Public • Published

@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

Readme

Keywords

none

Package Sidebar

Install

npm i @moblybr/node-event-bridge-client

Weekly Downloads

69

Version

2.0.0

License

ISC

Unpacked Size

17.7 kB

Total Files

9

Last publish

Collaborators

  • daniel_gusmao
  • majoraze
  • mobly-bot
  • mobly-user