8
respostas

Chamada via API Gaetway e teste local não reconhecem pacienteId

Oi pessoal,

Na parte em que criamos o endpoint para obter um paciente por id tive problemas. Inicialmente, utilizei a seguinte linha para pegar o valor do path:

const { pacienteId } = event.pathParameters;

porém, tive o seguinte erro:

"Cannot destructure property 'pacienteId' of 'event.pathParameters' as it is undefined."

Também tentei event.pathParameters.pacienteId e não funcionou.

Ao tentar o seguinte bloco:

const { pacienteId } = event;

Tive sucesso testando a lambda diretamente na aws, porém no teste local com o serverless framework e também chamando pelo endpoint gerado no api gateway não funcionou. Como se pacienteId não fosse definido, é undefined.

Preciso configurar algo no api gateway para ele reconhecer a variável path?

Se necessário, esse é meu código: https://github.com/antonialucianapires/lambda-cadastro-pacientes-serverless-framework

Após integração com dynamoDB testei as mesmas formas novamente:

const { pacienteId } = event.pathParameters assim funciona local, funciona através do gateway mas ao testar na lambda pelo console não funciona. Por que?

Cannot destructure property 'pacienteId' of 'event.pathParameters' as it is undefined.

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
8 respostas

Esse erro é quando a lambda n reconhece a variable declarada no serverless. Aparentemente está tudo certo. Vou baixar seu código pra testar aqui e já te retorno.

Testei aqui sem um db apenas com lambda e serverless local, funcionou direitinho, poderia tirar uma print de como você está chamando a api?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Pelo o código que está em meu github funciona local, bem como funciona ao realizar a requisição via api gateway. Mas na tela do serviço lambda na aws, aparece esse erro:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Queria entender o porquê. Será que é a forma que montei o teste pelo console?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Verifique se seu api gateway está assim Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Pedro, por onde você acessou essa tela de configuração?

Antonia vá no apigateway, seleciona o seu gateway, vá em recursos, seleciona o método de requisição e o path, no caso o seu seria um get, Insira aqui a descrição dessa imagem para ajudar na acessibilidade . E por fim vá em Solicitação de integração Insira aqui a descrição dessa imagem para ajudar na acessibilidade . Verifique se está conforme a imagem que enviei anteriormente

está sim:Insira aqui a descrição dessa imagem para ajudar na acessibilidade