Configurar um nome de domínio personalizado otimizado para borda no API Gateway
Quando você cria um nome de domínio personalizado para uma API otimizada para borda, o API Gateway configura uma distribuição do CloudFront e um registro DNS para mapear o nome de domínio da API para o nome de domínio da distribuição do CloudFront. Solicitações para a API são roteadas para o API Gateway por meio da distribuição mapeada do CloudFront. Esse mapeamento refere-se a solicitações de API vinculadas ao nome de domínio personalizado a ser roteado para o API Gateway por meio da distribuição mapeada do CloudFront.
Considerações
Veja a seguir algumas considerações sobre o nome de domínio personalizado otimizado para borda.
-
Para configurar um nome de domínio personalizado otimizado para bordas ou atualizar seu certificado, você deve ter uma permissão para atualizar as distribuições do CloudFront.
As seguintes permissões são necessárias para atualizar as distribuições do CloudFront:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudFrontUpdateDistribution", "Effect": "Allow", "Action": [ "cloudfront:updateDistribution" ], "Resource": [ "*" ] } ] }
-
É necessário solicitar ou importar um certificado para o nome de domínio personalizado otimizado para borda na região Leste dos EUA (N. da Virgínia):
us-east-1
. -
A distribuição do CloudFront criada pelo API Gateway pertence a uma conta específica da região afiliada ao API Gateway. Ao rastrear operações para criar e atualizar essa distribuição do CloudFront no CloudTrail, você deve usar esse ID de conta do API Gateway. Para ter mais informações, consulte Registrar a criação do nome de domínio personalizado no CloudTrail em log.
-
O API Gateway oferece suporte a nomes de domínio personalizados otimizados para bordas, otimizando a Indicação de nome de servidor (SNI) na distribuição do CloudFront. Consulte mais informações sobre como usar nomes de domínio personalizados em uma distribuição do CloudFront, incluindo o formato de certificado necessário e o tamanho máximo de uma chave de certificado, em Usar nomes de domínio alternativos e HTTPS no Guia do desenvolvedor do Amazon CloudFront.
-
Um nome de domínio personalizado otimizado para borda leva cerca de 40 minutos para ficar pronto.
-
Após criar o nome de domínio personalizado otimizado para borda, é necessário criar um registro DNS para mapear o nome de domínio personalizado para o nome da distribuição do CloudFront.
Criar um nome de domínio personalizado otimizado para borda
O procedimento a seguir descreve como criar um nome de domínio personalizado otimizado para borda para uma API.
Um nome de domínio personalizado otimizado para borda leva cerca de 40 minutos para ficar pronto, mas o console exibe imediatamente o nome de domínio da distribuição do CloudFront associado, no formato
, junto com o ARN do certificado. Enquanto isso, você pode continuar na próxima etapa e configurar o alias do registro DNS para mapear o nome de domínio personalizado para o nome de domínio da distribuição do CloudFront associado.distribution-id
.cloudfront.net
Criar um registro DNS para o nome de domínio personalizado otimizado para borda
Depois de iniciar a criação do nome de domínio personalizado otimizado para borda, configure o alias do registro DNS.
Recomendamos que você use o Route 53 para criar um alias de registro A para o nome de domínio personalizado e especifique o nome de domínio da distribuição do CloudFront como o destino do alias. Isso significa que o Route 53 pode rotear seu nome de domínio personalizado, mesmo que seja um apex de zona. Para obter mais informações, consulte Escolher entre conjuntos de registros de recursos de alias e não alias no Guia do desenvolvedor do Amazon Route 53.
Para obter instruções sobre o Amazon Route 53, consulte Como rotear o tráfego para uma API do Amazon API Gateway usando o seu nome de domínio no Guia do desenvolvedor do Amazon Route 53.
Registrar a criação do nome de domínio personalizado no CloudTrail em log
Quando o CloudTrail está habilitado para registrar em log as chamadas do API Gateway feitas pela sua conta, o API Gateway registra as atualizações da distribuição do CloudFront associadas quando um nome de domínio personalizado é criado ou atualizado para uma API. Esses logs estão disponíveis em us-east-1
. Como essas distribuições do CloudFront são de propriedade do API Gateway, cada uma dessas distribuições do CloudFront reportadas é identificada por um dos seguintes IDs de conta do API Gateway específicos da região, e não pelo ID da conta do proprietário da API.
Region |
ID da conta |
---|---|
us-east-1 | 392220576650 |
us-east-2 | 718770453195 |
us-west-1 | 968246515281 |
us-west-2 | 109351309407 |
ca-central-1 | 796887884028 |
eu-west-1 | 631144002099 |
eu-west-2 | 544388816663 |
eu-west-3 | 061510835048 |
eu-central-1 | 474240146802 |
eu-central-2 | 166639821150 |
eu-north-1 | 394634713161 |
eu-south-1 | 753362059629 |
eu-south-2 | 359345898052 |
ap-northeast-1 | 969236854626 |
ap-northeast-2 | 020402002396 |
ap-northeast-3 | 360671645888 |
ap-southeast-1 | 195145609632 |
ap-southeast-2 | 798376113853 |
ap-southeast-3 | 652364314486 |
ap-southeast-4 | 849137399833 |
ap-south-1 | 507069717855 |
ap-south-2 | 644042651268 |
ap-east-1 | 174803364771 |
sa-east-1 | 287228555773 |
me-south-1 | 855739686837 |
me-central-1 | 614065512851 |
Configurar o mapeamento de caminho base de uma API com um nome de domínio personalizado como seu nome de host
Você pode usar o mapeamento de caminho de base para usar um único nome de domínio personalizado como o nome do host de várias APIs. Isso torna uma API acessível por meio da combinação do nome de domínio personalizado e do caminho base associado.
Por exemplo, se, no API Gateway, você criou uma API chamada PetStore
e outra API chamada Dogs
e configurou um nome de domínio personalizado de api.example.com
, pode definir o URL da API PetStore
como https://api.example.com
.
Isso associa a API PetStore
ao caminho base de uma string vazia. Se você definir o URL da API PetStore
como https://api.example.com/PetStore
, isso associará a API PetStore
ao caminho base de PetStore
. É possível atribuir um caminho base de MyDogList
para a API Dogs
. A URL de https://api.example.com/MyDogList
é então a URL raiz da API Dogs
.
Para configurar mapeamentos de API em vários níveis, você só pode usar um nome de domínio regional personalizado. Os nomes de domínio personalizados otimizados para borda não são compatíveis. Para ter mais informações, consulte Associar estágios de API a um nome de domínio personalizado para APIs REST.
O procedimento a seguir configura mapeamentos de API para mapear caminhos de seu nome de domínio personalizado para seus estágios de API.
Alternar um certificado importado para o ACM
O ACM lida automaticamente com a renovação dos certificados que ele emite. Não é necessário alternar certificados emitidos pelo ACM para seus nomes de domínio personalizados. O CloudFront se encarrega disso em seu nome.
No entanto, se você importar um certificado para o ACM e usá-lo para um nome de domínio personalizado, deverá alternar o certificado antes que ele expire. Isso envolve importar um novo certificado de terceiro para o nome de domínio e revezar o certificado existente para o novo. Você precisará repetir o processo quando o certificado recém-importado expirar. Como alternativa, você pode solicitar que o ACM emita um novo certificado para o nome de domínio e alterne esse certificado existente com o novo certificado emitido pelo ACM. Depois disso, é possível deixar o ACM e o CloudFront encarregados de lidar com a alternância de certificados para você automaticamente. Para criar ou importar um novo certificado do ACM, siga as etapas em Como criar ou importar um certificado SSL/TLS no ACM.
O procedimento a seguir descreve como alternar um certificado para um nome de domínio.
nota
Leva cerca de 40 minutos para alternar um certificado importado no ACM.
Chamar a API com nomes de domínio personalizado
Chamar uma API com um nome de domínio personalizado é o mesmo que chamá-la com o nome de domínio padrão, desde que a URL correta seja utilizada.
Os exemplos a seguir comparam e contrastam um conjunto de URLs padrão e as URLs personalizadas correspondentes de duas APIs (udxjef
e qf3duz
) em uma região especificada (us-east-1
) e de um determinado nome de domínio personalizado (api.example.com
).
ID de API | Estágio | URL padrão | Caminho base | URL personalizado |
---|---|---|---|---|
udxjef | prod | https://udxjef.execute-api.us-east-1.amazonaws.com/prod | /petstore | https://api.example.com/petstore |
udxjef | tst | https://udxjef.execute-api.us-east-1.amazonaws.com/tst | /petdepot | https://api.example.com/petdepot |
qf3duz | dev | https://qf3duz.execute-api.us-east-1.amazonaws.com/dev | /bookstore | https://api.example.com/bookstore |
qf3duz | tst | https://qf3duz.execute-api.us-east-1.amazonaws.com/tst | /bookstand | https://api.example.com/bookstand |
O API Gateway oferece suporte a nomes de domínio personalizados para uma API usando a Indicação de nome de servidor (SNI)
O API Gateway impõe o SNI na distribuição do CloudFront. Para obter informações sobre como o CloudFront usa nomes de domínio personalizados, consulte SSL personalizado no Amazon CloudFront