

# Entrada para um autorizador do Lambda do API Gateway
<a name="api-gateway-lambda-authorizer-input"></a>

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

## Formato de entrada do `TOKEN`
<a name="w2aac15b9c23c25c19b5"></a>

 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`
<a name="w2aac15b9c23c25c19b7"></a>

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 [\$1context](api-gateway-mapping-template-reference.md#context-variable-reference). 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](set-up-lambda-proxy-integrations.md#api-gateway-simple-proxy-for-lambda-input-format). 