Entrada para um autorizador do Lambda do API Gateway - Amazon API Gateway

Entrada para um autorizador do Lambda do API Gateway

A seção a seguir explica o formato da entrada do API Gateway para um autorizador do Lambda.

Formato de entrada do TOKEN

Para um autorizador do Lambda (anteriormente conhecido como autorizador personalizado) do tipo TOKEN, você deve especificar um cabeçalho personalizado como Token Source (Origem do token) quando configurar o autorizador para sua API. O cliente da API deve repassar o token de autorização necessário nesse cabeçalho na solicitação de entrada. Ao receber a solicitação do método de entrada, o API Gateway extrai o token do cabeçalho personalizado. Ele passa o token como a propriedade authorizationToken do objeto event da função do Lambda, além do método ARN como a propriedade methodArn:

{ "type":"TOKEN", "authorizationToken":"{caller-supplied-token}",     "methodArn":"arn:aws:execute-api:{regionId}:{accountId}:{apiId}/{stage}/{httpVerb}/[{resource}/[{child-resources}]]" }

Neste exemplo, a propriedade type especifica o tipo de autorizador, que é um autorizador TOKEN. O {caller-supplied-token} origina-se do cabeçalho de autorização em uma solicitação do cliente e pode ser qualquer valor de string. O methodArn é o ARN da solicitação de método de entrada e é preenchido pelo API Gateway de acordo com a configuração do autorizador do Lambda.

Formato de entrada da REQUEST

Para um autorizador do Lambda do tipo REQUEST, o API Gateway passa os parâmetros de solicitação para a função do Lambda do autorizador como parte do objeto event. Os parâmetros de solicitação incluem cabeçalhos, parâmetros de caminho, parâmetros de string de consulta, variáveis de estágio e algumas das variáveis de contexto de solicitação. O autor da chamada da API pode definir parâmetros de caminho, cabeçalhos e parâmetros de string de consulta. O desenvolvedor da API deve definir as variáveis de estágio durante a implantação da API e o API Gateway fornece o contexto de solicitação em tempo de execução.

nota

Os parâmetros de caminho podem ser passados como parâmetros da solicitação para a função do autorizador do Lambda, mas não podem ser usados como origens de identidade.

O exemplo a seguir mostra uma entrada para um autorizador REQUEST de um método API (GET /request) com uma integração de proxy:

{ "type": "REQUEST", "methodArn": "arn:aws:execute-api:us-east-1:123456789012:abcdef123/test/GET/request", "resource": "/request", "path": "/request", "httpMethod": "GET", "headers": { "X-AMZ-Date": "20170718T062915Z", "Accept": "*/*", "HeaderAuth1": "headerValue1", "CloudFront-Viewer-Country": "US", "CloudFront-Forwarded-Proto": "https", "CloudFront-Is-Tablet-Viewer": "false", "CloudFront-Is-Mobile-Viewer": "false", "User-Agent": "..." }, "queryStringParameters": { "QueryString1": "queryValue1" }, "pathParameters": {}, "stageVariables": { "StageVar1": "stageValue1" }, "requestContext": { "path": "/request", "accountId": "123456789012", "resourceId": "05c7jb", "stage": "test", "requestId": "...", "identity": { "apiKey": "...", "sourceIp": "...", "clientCert": { "clientCertPem": "CERT_CONTENT", "subjectDN": "www.example.com", "issuerDN": "Example issuer", "serialNumber": "a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1", "validity": { "notBefore": "May 28 12:30:02 2019 GMT", "notAfter": "Aug 5 09:36:04 2021 GMT" } } }, "resourcePath": "/request", "httpMethod": "GET", "apiId": "abcdef123" } }

O requestContext é um mapa de pares de chave/valor e corresponde à variável $context. Seu resultado é dependente da API.

O API Gateway pode adicionar novas chaves ao mapa. Para obter mais informações sobre a entrada de função do Lambda na integração de proxy do Lambda, consulte Formato de entrada de uma função do Lambda para integração de proxy.