@moblybr/middleware-defaults

1.0.1 • Public • Published

Pacote middyDefaults

Esse é um wrapper que ajudará na configuração de packages padrões que a lambda usará.

Instalação

Para Instalar:

    npm i @moblybr/middy-defaults

Uso

Para utilizar o middyDefaults em sua configuração padrão basta importar o pacote.

import { middyDefaults } from '@moblybr/middy-defaults' //es6 

//ou

const { middyDefaults } = require('@moblybr/middy-defaults') //commonJs

Desta forma ele ira montar um middy ja abstraido com alguns middlewares, são eles.

erroHandler 
obfuscaterMiddleware
doNotWaitForEmptyEventLoop

Por padrão o middlewar errorHandler ja vem pre configurado com um Log.error do erro e epsagon.setError(err) em casos de erro 500 e não esteja rodando offline, como é o caso no serverless offline, e com a variavel de ambiente NODE.ENV com valor diferente de 'test'.

Para mais informções de configurações personalizadas sobre errorHandler ou sobre obfuscaterMiddleware acesse a documentação dos mesmos abaixo.

Sera mostrado como realizar configurações personalizadas um pouco mais adiante.

errorHandler

obfuscaterMiddleware

Lambdas http

Para lamdas http existe o httpMiddyDefaults, um middy com alguns middlewares ja configurados para funções http

Uso

import { httpMiddyDefaults } from '@moblybr/middy-defaults' //es6 

//ou

const { httpMiddyDefaults } = require('@moblybr/middy-defaults') //commonJs

const handler = httpMiddyDefaults(async (event, context) => {
    //
})

O httpMiddyDefaults montará um middy ja com os seguintes middlewares.

errorHandler
obfuscaterMiddleware
doNotWaitForEmptyEventLoop
warmup
cors
httpEventNormalizer
httpJsonBodyParser

Para mais informções de funcionalidades e configurações sobre estes mesmos middlewares consulte a documentação abaixo.

errorHandler

obfuscaterMiddleware

GitHub-middyjs/middy

Configurações

Alguns dos middlewares abstraidos em nosso middyDefaults e httpMiddyDefaults aceitam configurações, e para configuralos basta passar um objeto de configurações como segundo paramentro da função.

Uso

import { middyDefaults } from '@moblybr/middy-defaults' //es6 

//ou

const { middyDefaults } = require('@moblybr/middy-defaults') //commonJs

const config = {
  errorHandler: { customLogger }, // configuração errorHandler opcional, padrão console.error e setError no epsagon
  captureCorrelationIds: {
    sampleDebugLogRate: 0.01
  }, // configuração captureCorrelationIds opcional, padrão 1%
  sampleLogging: {
    sampleRate: 0.01
  }, // configuração sampleLogging opcional, padrão 1% de log
  obfuscatedLogging: {}, // configuração obfuscatedLogging requirida do contrario não obfucara nenhum dado
  doNotWaitForEmptyEventLoop: {}, // configuração doNotWaitForEmptyEventLoop opcional
  warmup: {}, // configuração warmup opcional
  cors: {} // configuração do cors opcional 
  middlewareOrder: [] // configuração opcional para inserir middleware em posição customizada
}

const handler = middyDefaults(async (event, context) => {
    //
}, config)
  • permite sobescrever via variavel de ambiente o default de 1% de sample rate via a variavel SAMPLE_DEBUG_LOG_RATE, para habilitar logs de debug de 5% é só colocar o valor da variável para 0.05

  • O sample logging é vinculado a variável LOG_LEVEL que pode ser DEBUG, WARN e ERROR, o padrão é DEBUG então se não colocar a variável sempre irá logar tudo

  • middlewareOrder é um array de objetos com 3 atributos:

    • position: posição numérica na ordem de middlewares
    • fn: função do middleware a ser executada
    • params: parametros do middleware a ser executado Exemplo: { position: 0, fn: warmup, params: config.warmup } ATENÇÃO: a ordem de middlewares é uma configuração avançada e pode afetar o comportamento do serviço

Importante

Para que sample logger funcione é necessario que seja declarada uma variável de ambiente [LOG_LEVEL = WARN] para que ele logue corretamente, do contrário ele sempre logara por padrão com Log.debug()

É recomendado que para produção as configurações de sampleLogging e obfuscator sejam passadas corretamente. Configurações do obfuscator na seguinte url: https://github.com/getndazn/dazn-lambda-powertools/tree/master/packages/lambda-powertools-middleware-obfuscater

Readme

Keywords

none

Package Sidebar

Install

npm i @moblybr/middleware-defaults

Weekly Downloads

1

Version

1.0.1

License

ISC

Unpacked Size

13.4 kB

Total Files

11

Last publish

Collaborators

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