Executar e depurar recursos locais do Amazon API Gateway - AWS Kit de ferramentas para VS Code

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Executar e depurar recursos locais do Amazon API Gateway

Você pode executar ou depurar recursos locais do AWS SAM API Gateway, especificados em template.yaml. Para isso, execute a configuração de inicialização type=aws-sam do VS Code com o invokeTarget.target=api.

nota

O API Gateway suporta dois tipos de APIs: REST e HTTP. No entanto, o recurso do API Gateway com o AWS Toolkit for Visual Studio Code é compatível apenas com APIs REST. Às vezes, as APIs HTTP são chamadas de “API Gateway V2 APIs”.

Para executar e depurar recursos locais do API Gateway
  1. Selecione uma das seguintes abordagens para criar uma configuração de execução para um recurso do API Gateway do AWS SAM:

    • Opção 1: acesse o código-fonte do manipulador (arquivo .js, .cs ou .py) no projeto AWS SAM, passe o mouse sobre o manipulador do Lambda e selecione a opção Adicionar configuração de depuração do CodeLens. Em seguida, no menu, escolha o item marcado como Evento de API.

    • Opção 2: edite launch.json e crie uma configuração de inicialização usando a sintaxe a seguir.

      { "type": "aws-sam", "request": "direct-invoke", "name": "myConfig", "invokeTarget": { "target": "api", "templatePath": "n12/template.yaml", "logicalId": "HelloWorldFunction" }, "api": { "path": "/hello", "httpMethod": "post", "payload": { "json": {} } }, "sam": {}, "aws": {} }
  2. No painel Executar do VS Code, escolha a configuração de inicialização (denominada myConfig no exemplo acima).

  3. (Opcional) Adicione pontos de interrupção ao código do projeto do Lambda.

  4. Digite F5 ou escolha Reproduzir no painel Executar.

  5. No painel de saída, exiba os resultados.

Configuração

Quando você usa o Valor da propriedade do invokeTarget.target, api, o Toolkit altera a validação da configuração de execução e o comportamento para suportar um campo da api.

{ "type": "aws-sam", "request": "direct-invoke", "name": "myConfig", "invokeTarget": { "target": "api", "templatePath": "n12/template.yaml", "logicalId": "HelloWorldFunction" }, "api": { "path": "/hello", "httpMethod": "post", "payload": { "json": {} }, "querystring": "abc=def&qrs=tuv", "headers": { "cookie": "name=value; name2=value2; name3=value3" } }, "sam": {}, "aws": {} }

Substitua os valores no exemplo da seguinte forma:

invokeTarget.logicalId

Um recurso da API.

path

O caminho da API que a configuração de inicialização solicita, por exemplo, "path": "/hello".

Deve ser um caminho de API válido resolvido a partir do template.yaml especificado por invokeTarget.templatePath.

httpMethod

Pode ser um dos seguintes verbos: delete", "get", "head", "options", "patch", "post", "put".

payload

A carga do JSON (corpo HTTP) para enviar na solicitação, com a mesma estrutura e regras que o campo lambda.payload.

payload.path aponta para um arquivo que contém a carga útil JSON.

payload.json especifica uma carga útil JSON integrada.

headers

Mapa opcional de pares de nome/valor, que você usa para especificar cabeçalhos HTTP a serem incluídos na solicitação, conforme o exemplo abaixo.

"headers": { "accept-encoding": "deflate, gzip;q=1.0, *;q=0.5", "accept-language": "fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5", "cookie": "name=value; name2=value2; name3=value3", "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36", }
querystring

String opcional que define a querystring da solicitação, por exemplo, "querystring": "abc=def&ghi=jkl".

AWS

Como as informações de conexão da AWS são fornecidas. Para obter mais informações, consulte a tabela AWS connection ("aws") properties na seção Opções de configuração para depurar aplicações sem servidor.

sam

Como a CLI do AWS SAM compila a aplicação. Para obter mais informações, consulte a tabela AWS SAM CLI ("sam") properties na seção Opções de configuração para depurar aplicações sem servidor.