Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Erro na criação de endpoints

Olá, estou seguindo o curso e estou parado na Aula 3 parte 2 (Primeiro endpoint).

Meu arquivo serverless.yml tem o seguinte trecho com problemas:

functions:
  listarPacientes:
    handler: handler.listarPacientes
    events:
      - httpApi: # Em outro momento estava como http assim como o professo mostra, mas como estava com erros resolvi seguir como mostra da documentação oficial: https://www.serverless.com/framework/docs/providers/aws/events/
        path: '/pacientes/'
        method: GET
    description: "Função de listagem de pacientes"

Ao executar o comando sls deploy recebo o seguinte warnning (que ao meu ver deve ser erro): 'functions.listarPacientes.events[0]': unsupported function event.

:~$ sls deploy

Serverless: Configuration warning at 'functions.listarPacientes.events[0]': unsupported function event
Serverless:  
Serverless: Learn more about configuration validation here: http://slss.io/configuration-validation
Serverless:  
Serverless: Packaging service...
Serverless: Excluding development dependencies...

O processo de deploy até segue até o final, mas o endpoint não é criado.

Minhas informações de ambiente para ajudar no suporte:

  My Environment Information ---------------------------
     Operating System:          linux     (Fedora 32)                                                                          
     Node Version:              14.4.0
     Framework Version:         2.21.1
     Plugin Version:            4.4.2                
     SDK Version:               2.3.2                                                                                           
     Components Version:        3.5.1

Já tentei buscar informações no no google/stackoverflow mas sem sucesso, já segui recomendação de mudar a indentação, mas definitiamente o erro não é a identação, pois o erro nesse caso seria diferente, pois já mudei esse arquivo de diversas formas.

5 respostas

Bem ainda não cheguei a uma solução do problema e isso complica bastante continuar o curso. Alguém ai teve o mesmo problema e conseguiu solucionar?

Se ajudar no suporte, segue o repositório com código completo.

Oi Paulo, existem sim uma diferença entre os eventos http e httpApi, no curso fizemos as configurações para o primeiro tipo de evento, talvez ainda tenha que alterar mais coisas para funcionar como httpApi.

Minha sugestão, volte para a versão do curso e compartilha aqui com a gente os erros que vocês está obtendo.

Olá @Humberto,

Voltei a versão anterior com o uso de evento http em vez de httpApi conforme commit 8a96c96, tomei a liberdade de olha no seu repo referente a aula e achei até estranho ue o trecho de bloco dentro de events tem um nível de edentação diferente do restante do arquivo (usando 4 espaços ao invés de 2), mas mesmo tentando deixar como seu arquivo, continuo recebendo o mesmo warning/error:

Serverless: Configuration warning at 'functions.listarPacientes.events[0]': unsupported function event

E como pode ver abaixo na saída completa do comando sls deploy a lista de endpoints fica None , sem a criação de nada

:~$ sls deploy
Serverless: Configuration warning at 'functions.listarPacientes.events[0]': unsupported function event
Serverless:  
Serverless: Learn more about configuration validation here: http://slss.io/configuration-validation
Serverless:  
Serverless: Packaging service...
Serverless: Excluding development dependencies...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading artifacts...
Serverless: Uploading service cadastro-pacientes.zip file to S3 (1.28 MB)...
Serverless: Validating template...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
.........
Serverless: Stack update finished...
Service Information
service: cadastro-pacientes
stage: dev
region: us-east-2
stack: cadastro-pacientes-dev
resources: 6
api keys:
  None
endpoints:
  None
functions:
  listarPacientes: cadastro-pacientes-dev-listarPacientes
layers:
  None
Serverless: Removing old service artifacts from S3...

Meu serverless.yml está assim:


service: cadastro-pacientes
frameworkVersion: '2'
provider:
  name: aws
  runtime: nodejs12.x
  stage: 'dev'
  region: 'us-east-2'
functions:
  listarPacientes:
    handler: handler.listarPacientes
    events:
      - http:
        path: pacientes
        method: GET
    description: "Função de listagem de pacientes"
solução!

Paulo, o problema esta no arquivo serverless.yml, para ser mais especifico, neste trecho aqui:

functions:
  listarPacientes:
    handler: handler.listarPacientes
    events:
      - http:
        path: pacientes # ponto problemático
        method: GET # ponto problemático
    description: "Função de listagem de pacientes"

A identação das propriedades do evento http está incorreta, faltou uma identação extra ali, o formato correto estaria assim:

functions:
  listarPacientes:
    handler: handler.listarPacientes
    events:
      - http:
          path: pacientes # identação extra aqui (dois espaços)
          method: GET    # e aqui também
    description: "Função de listagem de pacientes"

E para confirmar se o problema era isto, eu peguei o seu arquivo e rodei local, só funcionou após corrigir a identação.

Exato Humberto era isso mesmo, porém mesmo nas docs não temos essa extra indentação. Mas agora foi, valeu ai, erro bobo que me custou quase dois dias.