@stone-ton/lambda-json-rpc
TypeScript icon, indicating that this package has built-in type declarations

3.481.6 • Public • Published

Biblioteca AWS Lambda JSON-RPC para Server e Cliente em TypeScript

Visão Geral

Esta biblioteca oferece um framework simples e leve para construir um servidor e cliente utilizando funções AWS Lambda no padrão JSON-RPC (Remote Procedure Call). Com esta biblioteca, você pode facilmente criar aplicações serverless que utilizam AWS Lambda para lidar com chamadas de procedimentos remotos.

Exemplo

Servidor

import { Handler } from 'aws-lambda'
import { RPCHandler } from '@stone-ton/lambda-json-rpc'

type Methods = {
  test(params: { message: string }): string
}
type MethodTest = (
  params: Parameters<Methods['test']>[0],
  serverParams: JSONRPCMetadata
) => ReturnType<Methods['test']>

const method: MethodTest = (message) => {
  return 'Olá ' + message
}

const rpc = new RPCHandler<Methods>()

rpc.addMethod('test', method)


export const handler: Handler = async (event, context) => {
  return rpc.handler(event, context)
}

Cliente

import { RPCCLient } from 'aws-lambda'
import { LambdaClient } from '@aws-sdk/client-lambda'
type Methods = {
  test(params: { message: string }): string
}
const lambdaClient = new LambdaClient({})
const client = new RPCCLient<Methods>(lambdaClient)

const result = await client.request(
  'test',
  { message: 'foo' },
  {
    function_name: 'lambda-test',
    metadata: {
      request_id: '12',
      service: 'ton/monorepo',
      author: {
        id: '1234',
      },
    },
  },
)

Opentelemetry

Antes de começar a usar a biblioteca, certifique-se de definir as variáveis de ambiente necessárias:

  • OTLP: Deve ser definido como true para habilitar o rastreamento com OpenTelemetry.
  • OTLP_TIMEOUT: Define o limite máximo de espera em milissegundos para o envio do trace pela lambda, com o valor padrão de 200ms caso não seja definido.
  • OTLP_TRACE_URL: Deve ser definido com a URL do servidor OpenTelemetry Collector, por exemplo, localhost:4318.
  • OTLP_LAMBDA_DEBUG: Quando definido como true, acrescenta detalhes de requisição e resposta da lambda json rpc. Atenção à possível presença de dados sensíveis.

Readme

Keywords

none

Package Sidebar

Install

npm i @stone-ton/lambda-json-rpc

Weekly Downloads

17

Version

3.481.6

License

ISC

Unpacked Size

52.9 kB

Total Files

27

Last publish

Collaborators

  • stonemaistech