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
origina-se do cabeçalho de autorização em uma solicitação do cliente e pode ser qualquer valor de string. O {caller-supplied-token}
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.