Configurar CORS para APIs HTTP no API Gateway
O compartilhamento de recursos entre origens (CORS)Cross-Origin Request Blocked, talvez seja necessário habilitar o CORS. Consulte mais informações em O que é CORS?
Normalmente o CORS é necessário para criar aplicativos Web que acessem APIs hospedadas em um domínio ou origem diferente. O CORS pode ser habilitado para permitir solicitações para sua API a partir de um aplicativo Web hospedado em um domínio diferente. Por exemplo, se sua API estiver hospedada em https://{api_id}.execute-api.{region}.amazonaws.com/, e você quiser chamar sua API a partir de um aplicativo web hospedado no example.com, sua API deverá ser compatível com CORS.
Se você configurar o CORS para uma API, o API Gateway enviará automaticamente uma resposta às solicitações de comprovação OPTIONS, mesmo que não haja uma rota OPTIONS configurada para sua API. Para uma solicitação CORS, o API Gateway adiciona os cabeçalhos de CORS configurados à resposta de uma integração.
nota
Se você configurar CORS para uma API, o API Gateway ignorará os cabeçalhos de CORS retornados de sua integração de backend.
Em uma configuração de CORS, é possível especificar os parâmetros a seguir. Para adicionar esses parâmetros usando o console da API HTTP do API Gateway, selecione Adicionar depois de inserir o valor.
| Cabeçalhos de CORS | Propriedade da configuração de CORS | Exemplos de valores |
|---|---|---|
|
Access-Control-Allow-Origin |
allowOrigins |
|
|
Access-Control-Allow-Credentials |
allowCredentials |
true |
|
Access-Control-Expose-Headers |
exposeHeaders |
date, x-api-id, * |
|
Access-Control-Max-Age |
maxAge |
300 |
|
Access-Control-Allow-Methods |
allowMethods |
GET, POST, DELETE, * |
|
Access-Control-Allow-Headers |
allowHeaders |
authorization, * |
Para retornar cabeçalhos CORS, sua solicitação deve conter um cabeçalho origin. Para o método OPTIONS, sua solicitação deve conter um cabeçalho origin e um cabeçalho Access-Control-Request-Method.
A configuração de CORS pode parecer com a seguinte imagem:
Configurar o CORS para uma API HTTP com uma rota $default e um autorizador
É possível habilitar o CORS e configurar a autorização para qualquer rota de uma API HTTP. Quando você habilita o CORS e a autorização para a rota $default, há algumas considerações especiais. A rota $default captura solicitações para todos os métodos e rotas não definidos explicitamente, inclusive solicitações OPTIONS. Para oferecer suporte a solicitações OPTIONS não autorizadas, adicione uma rota OPTIONS /{proxy+} à API que não exija autorização e anexe uma integração à rota. A rota OPTIONS /{proxy+} tem prioridade mais alta que a $default. Como resultado, ela permite que os clientes enviem solicitações OPTIONS para a API sem autorização. Para obter mais informações sobre prioridades de roteamento, consulte Rotear solicitações de API.
Configurar o CORS para uma API HTTP usando a CLI da AWS
O comando update-api a seguir habilita as solicitações de CORS em https://www.example.com.
aws apigatewayv2 update-api --api-idapi-id--cors-configuration AllowOrigins="https://www.example.com"
Para obter mais informações, consulte CORS na Referência de API do Amazon API Gateway versão 2.