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
-
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": {} }
-
-
No painel Executar do VS Code, escolha a configuração de inicialização (denominada
myConfig
no exemplo acima). -
(Opcional) Adicione pontos de interrupção ao código do projeto do Lambda.
-
Digite F5 ou escolha Reproduzir no painel Executar.
-
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 porinvokeTarget.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.