@stone-ton/lambda-json-rpc
v3.481.6
Published
Biblioteca AWS Lambda JSON-RPC para Server e Cliente em TypeScript
Downloads
202
Readme
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 comotrue
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.