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 |
Autorização, * |
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:
![Configuração de CORS para APIs HTTP](images/http-cors-console.png)
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
É possível usar o comando update-api a seguir para habilitar as solicitações de CORS em https://www.example.com
.
aws apigatewayv2 update-api --api-id
api-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.