Esta página mostra como publicar uma API a partir de um domínio personalizado que lhe pertence, por exemplo, example.com
.
Em alternativa à utilização do seu próprio nome de domínio, pode utilizar um nome de domínio gerido pela Google. Consulte o artigo Usar um domínio gerido pela Google para mais informações.
Antes de começar
- Obtenha um nome de domínio de um registador de nomes de domínio se ainda não tiver um nome de domínio para usar na sua API.
- Valide a propriedade do domínio.
- Atribua um nome ao nome do anfitrião da API com o nome do seu domínio.
- Se estiver a usar SSL com o seu domínio, obtenha e carregue o seu certificado SSL.
- Implemente a sua API e o proxy de serviço extensível (ESP).
Configure o projeto da API para usar o seu nome de domínio
Siga as instruções no separador adequado.
Compute Engine
A forma recomendada de publicar uma API a partir de instâncias do Compute Engine é usar um equilibrador de carga num grupo de instâncias. Tem de reservar um endereço IP externo para o nome do domínio e usar esse endereço IP externo para o balanceador de carga.
Para publicar a API a partir de um nome de domínio:
- Reserve, pelo menos, um endereço IP externo estático no seu projeto:
- Atribua qualquer nome que quiser ao endereço IP reservado
- Em Tipo, clique em Global.
- Em Anexado a, clique em Nenhum. Associa o endereço IP a um balanceador de carga mais tarde.
- Visite a conta do fornecedor de domínio e edite as definições do domínio. Tem
de criar um registo A que contenha o nome da sua API, por exemplo,
myapi.example.com
com o endereço IP externo no respetivo campo de dados - Crie um grupo de instâncias que inclua as instâncias que executam a sua API e o
Proxy de serviço extensível (ESP:
- Atribua o nome que quiser ao grupo e adicione uma descrição.
- Na lista Zona, clique na zona usada pela sua instância da API.
- Na lista Definição da instância, clique em Selecionar instâncias existentes
- No campo Instâncias de VM, adicione a instância de VM que executa a API.
- Clique em Criar.
- Crie e configure um balanceador de carga HTTP(S):
- Clique em Definir um serviço de back-end > Criar ou selecionar um serviço de back-end.
- Atribua o nome e a descrição que quiser a esta configuração do serviço de back-end.
- No campo Protocolo, selecione o protocolo que quer suportar através do equilibrador de carga, HTTP ou HTTPS.
- Na lista Grupo de instâncias, clique no seu grupo de instâncias.
- No campo Portar números, introduza
8080
. - Clique em Verificação de funcionamento para configurar as verificações de funcionamento:
- Introduza um nome para a configuração da verificação de estado.
- Atribua a porta
8080
. - Para aceitar os restantes valores predefinidos, clique em Guardar.
- Por agora, aceite as predefinições para o resto da configuração. Pode fazer alterações mais tarde, conforme necessário, como portas adicionais.
- Não tem de definir nada nas Regras de anfitrião e caminho. Pode encaminhar tudo para a sua API de back-end através dos filtros Qualquer sem correspondência predefinidos. Isto significa que todo o tráfego para o
equilibrador de carga é direcionado para a API na porta
8080
(a porta predefinida), conforme definido nos passos anteriores. - Clique em Configuração do front-end.
- No campo Protocolo, selecione o protocolo que quer suportar através do equilibrador de carga, HTTP ou HTTPS.
- Na lista IP, clique no endereço IP externo que criou anteriormente.
- Para o protocolo HTTPS, tem de usar o SSL. Na lista Certificado, clique no certificado pretendido.
- Opcionalmente, se quiser suportar outro protocolo, clique em Adicionar IP e porta do front-end, especifique o protocolo, o mesmo endereço IP externo e uma porta diferente.
- Para criar o balanceador de carga totalmente configurado, clique em Criar. Se o botão Criar não estiver ativado, verifique os componentes que acabou de configurar: deve aparecer uma marca de verificação junto a cada um dos componentes de configuração. Uma marca de verificação em falta significa que não concluiu a configuração.
- Depois de as alterações de DNS serem propagadas, os pedidos são enviados para a sua API através do balanceador de carga.
GKE
Para publicar uma API num domínio para o Google Kubernetes Engine (GKE), tem de expôr o ESP como um serviço através do endereço IP externo devolvido para as definições de DNS do seu domínio. Tenha em atenção que o GKE faz automaticamente o equilíbrio de carga por si.
Para expor a sua API como um serviço:
- Se ainda não tiver um,
configure um serviço Kubernetes
para os seus back-ends de API. Crie um ficheiro de configuração do serviço,
service.yaml
, com conteúdo semelhante ao seguinte:apiVersion: v1 kind: Service metadata: name: echo spec: ports: - port: 80 targetPort: 8081 protocol: TCP selector: app: echo-app type: LoadBalancer
- Altere a etiqueta
selector
para corresponder às etiquetas de back-end (app: echo-app
neste exemplo) - Certifique-se de que o
targetPort
corresponde à porta usada pelo ESP configurado nos seus back-ends de API. O ESP usa a porta8081
por predefinição. - Implemente o serviço do Kubernetes:
kubectl apply -f service.yaml
- Veja o endereço IP externo atribuído ao seu serviço exposto:
O resultado apresenta um endereçokubectl get services
EXTERNAL-IP
semelhante ao seguinte:
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-node 10.X.XXX.202 10X.XXX.XX.123 8080/TCP 1m
- Altere o IP externo gerado de efémero para estático.
- Selecione o seu endereço IP externo na lista.
- Na lista Tipo, clique em Estático.
- Visite a conta do fornecedor de domínio e edite as definições do domínio. Tem
de criar um registo A que contenha o nome da sua API, por exemplo,
myapi.example.com
, com o endereço IP externo no respetivo campo de dados.