Adição de uma resposta de gateway
Cenário
Uma resposta de gateway é exibida se o APIG falhar ao processar uma solicitação de API. O APIG fornece um conjunto de respostas padrão e também permite criar respostas de gateway com códigos de status e conteúdo personalizados na página API Groups. O conteúdo da resposta deve estar no formato JSON.
Por exemplo, o conteúdo de uma resposta de gateway padrão é o seguinte:
{"error_code": "$context.error.code", "error_msg": "$context.error.message", "request_id": "$context.requestId"}
Você pode adicionar uma resposta com o seguinte conteúdo:
{"errorcode": "$context.error.code", "errormsg": "$context.error.message", "requestid": "$context.requestId","apiId":"$context.apiId"}
Você pode adicionar mais campos ou excluir campos existentes do corpo JSON.
- As respostas de gateway padrão fornecidas pelo APIG podem ser editadas.
- Você pode criar respostas de gateway e configurar respostas diferentes para APIs no mesmo grupo de APIs.
- O tipo de resposta de gateway não pode ser alterado. Para mais detalhes, consulte Tipos de respostas.
- As respostas do gateway podem conter as variáveis de contexto do gateway da API (começando com $context). Para mais detalhes, consulte Variáveis de contexto do APIG.
Pré-requisitos
Você criou um grupo de APIs.
Procedimento
- Acesse o console de gerenciamento.
- Clique em no canto superior esquerdo e selecione uma região.
- Clique em no canto superior esquerdo e escolha API Gateway.
- Escolha um tipo de gateway no painel de navegação.
- Shared Gateway: você pode criar e gerenciar APIs imediatamente. Você será cobrado com base no número de chamadas de API.
- Dedicated Gateways: você pode criar e gerenciar APIs depois de comprar um gateway. Você será cobrado com base na duração de uso do gateway.
- No painel de navegação, escolha API Publishing > API Groups.
- Localize o grupo de APIs para o qual você deseja criar ou modificar uma resposta de gateway e clique no nome do grupo para ir para a página de detalhes do grupo de APIs.
- Clique na guia Gateway Responses e crie uma resposta de gateway.
- Para editar uma resposta, clique no botão Edit no canto superior direito e modifique o código de status e o conteúdo da resposta.
- Você pode modificar apenas o código de status e o conteúdo de uma resposta de gateway padrão ou personalizada e não pode alterar o tipo de resposta.
- Informações de erro e outros detalhes de resposta podem ser obtidos usando variáveis. Para obter detalhes sobre as variáveis suportadas, consulte Tabela 2.
Tipos de respostas
Tabela 1 lista os tipos de resposta suportados pelo APIG. Você pode definir códigos de status de respostas para atender aos seus requisitos de serviço.
Nome da resposta |
Código de status padrão |
Descrição |
---|---|---|
Acesso negado |
403 |
Acesso negado. Por exemplo, a política de controle de acesso é acionada ou um ataque é detectado. |
Erro de configuração do autorizador |
500 |
Ocorreu um erro de autorizador personalizado. Por exemplo, a comunicação falhou ou uma resposta de erro foi retornada. |
Autorizador falhou |
500 |
Falha na autorização personalizada. |
Fonte de identidade incorreta |
401 |
A origem de identidade do autorizador personalizado está ausente ou é inválida. |
Falha de autenticação |
401 |
Falha na autenticação do IAM ou da aplicação. |
Fonte de identidade não encontrada |
401 |
Nenhuma fonte de identidade foi especificada. |
Tempo limite de back-end |
504 |
A comunicação com o serviço de back-end expirou. |
Back-end indisponível |
502 |
O serviço de back-end não está disponível devido a um erro de comunicação. |
Padrão 4XX |
- |
Outro erro 4XX ocorreu. |
Padrão 5XX |
- |
Outro erro 5XX ocorreu. |
Nenhuma API encontrada |
404 |
Nenhuma API foi encontrada. |
Parâmetros de solicitação incorretos |
400 |
Os parâmetros de solicitação estão incorretos ou o método HTTP não é suportado. |
Solicitação limitada |
429 |
A solicitação foi rejeitada devido à limitação de solicitação. |
Aplicação não autorizada |
401 |
A aplicação que você está usando não foi autorizada a chamar a API. |
Variáveis de contexto do APIG
Variável |
Descrição |
---|---|
$context.apiId |
ID da API. |
$context.appId |
ID da aplicação que chama a API. |
$context.requestId |
ID da solicitação gerada quando a API é chamada. |
$context.stage |
Ambiente de implementação no qual a API é chamada. |
$context.sourceIp |
Endereço IP de origem do chamador da API. |
$context.authorizer.frontend.property |
Valores dos pares de valor do atributo especificados mapeados para o contexto na resposta do autorizador personalizado do front-end |
$context.authorizer.backend.property |
Valores dos pares de valor do atributo especificados mapeados para o contexto na resposta do autorizador personalizado de back-end |
$context.error.message |
Mensagem de erro. |
$context.error.code |
Código de erro. |
$context.error.type |
Tipo de erro. |