Quero usar um nome de domínio personalizado no Amazon API Gateway com o Amazon CloudFront para rotear solicitações para várias APIs e mapear meu caminho base.
Resolução
Crie o nome de domínio personalizado e associe suas APIs
Crie um nome de domínio personalizado para suas APIs no API Gateway. Para mapear várias APIs para o mesmo domínio com caminhos base diferentes, consulte o seguinte:
Depois de criar um nome de domínio personalizado no API Gateway, atualize seu registro DNS para mapear o nome de domínio personalizado para seu endpoint de API. Para atualizar o DNS no Amazon Route 53, consulte Routing traffic to an Amazon API Gateway API by using your domain name (Encaminhar o tráfego para uma API do Amazon API Gateway por meio do nome de domínio).
O exemplo a seguir usa uma configuração de nome de domínio personalizado regional da API REST:
- https://restapiId1.execute-api.us-west-2.amazonaws.com/stage1/example1/home
- https://restapiId2.execute-api.us-west-2.amazonaws.com/stage2/example2/home
Exemplo de mapeamento de caminho base de domínio personalizado:
- O caminho base /api1 mapeia o estágio stage1 da API REST com o ID restapiId1.
- O caminho base /api2 mapeia o estágio stage2 da API REST com o ID restapiId2.
Exemplos de URLs de domínio personalizados:
- https://apigw.customdomain.com/api1/example1/home
- https://apigw.customdomain.com/api2/example2/home
Crie uma distribuição web do CloudFront
Para criar uma distribuição, conclua as seguintes etapas:
- Abra o console do CloudFront.
- Clique em Criar distribuição.
- No Domínio de origem, insira seu nome de domínio personalizado do API Gateway. Por exemplo, apigw.customdomain.com.
- Deixe o Caminho de origem em branco.
Observação: se o caminho base no caminho de origem estiver incorreto, o CloudFront retornará o erro "403 Forbidden" com o token de autenticação ausente. Para mais informações, consulte How do I troubleshoot API Gateway REST API endpoint 403 "Missing Authentication Token" errors? (Como soluciono erros 403 "Missing Authentication Token" do endpoint da API REST do API Gateway?).
- Em Protocolo SSL de origem, escolha TLSv1.2.
- Em Política do protocolo de origem, escolha Somente HTTPS.
- (Opcional) Para adicionar cabeçalhos personalizados à origem, escolha Adicionar cabeçalhoe insira o Nome de cabeçalho e o Valor.
- Para a Política de solicitação de origem, selecione AllViewerExceptHostHeader a fim de encaminhar todos os parâmetros de solicitação.
- (Opcional) Para desativar o cache, em Política de cache, escolha CachingDisabled.
- Em Política do protocolo de visualizador, escolha Apenas HTTPS ou Redirecionar HTTP para HTTPS, conforme o necessário.
- Clique em Criar distribuição.
Depois, o status da distribuição mudará de InProgress para Deployed.
Teste sua distribuição web do CloudFront
Conclua as seguintes etapas:
- Abra o console do CloudFront.
- Anote o Nome de domínio da distribuição da web. Por exemplo, a222222bcdefg5.cloudfront.net.
- Teste sua distribuição.
Um teste bem-sucedido retorna uma resposta HTTP 200 OK. A propagação levará até 24 horas. Se a solicitação não retornar uma resposta, o registro DNS do CloudFront ainda estará em andamento. Se a distribuição não tiver sido implantada, você poderá receber um erro HTTP 5xx. Outros erros HTTP 4xx podem ocorrer se a propagação do DNS estiver incompleta.
Depois de criar uma distribuição do CloudFront, você pode solicitar duas APIs de uma única distribuição do CloudFront e seu nome de domínio personalizado do API Gateway.
Para encaminhar cabeçalhos de autorização de entrada à distribuição web do CloudFront, consulte How do I set up API Gateway with my own CloudFront distribution? (Como faço para configurar o API Gateway com minha própria distribuição do CloudFront?).
Informações relacionadas
API endpoint types for REST APIs in API Gateway (Tipos de endpoint de API para APIs REST no API Gateway)