Comece a usar o API Gateway e o Cloud Run
Esta página mostra como configurar o API Gateway para gerir e proteger um serviço de back-end do Cloud Run.
Lista de tarefas
Use a seguinte lista de tarefas enquanto segue o tutorial. Todas as tarefas são necessárias para implementar um API Gateway para o seu serviço de back-end do Cloud Run.
- Crie ou selecione um Google Cloud projeto.
- Se não implementou o seu próprio Cloud Run, implemente um serviço de exemplo. Consulte o passo 7 em Antes de começar.
- Ative os serviços do gateway da API necessários.
- Crie uma especificação OpenAPI que descreva a sua API e configure as rotas para o seu serviço de back-end do Cloud Run. Consulte o artigo Criar uma configuração de API.
- Implemente um gateway de API através da configuração da API. Consulte o artigo Implementar um gateway da API.
- Monitorize a atividade nos seus serviços. Consulte o artigo Acompanhamento da atividade da API.
- Evite incorrer em cobranças na sua conta Google Cloud . Consulte Limpar.
Antes de começar
Na Google Cloud consola, aceda à página Painel de controlo e selecione ou crie um Google Cloud projeto.
Certifique-se de que a faturação está ativada para o seu projeto.
Tome nota do ID do projeto que quer usar para este tutorial. No resto desta página, este ID do projeto é designado como PROJECT_ID.
Transfira e instale a Google Cloud CLI.
Atualize os
gcloud
componentes:gcloud components update
Defina o projeto predefinido. Substitua PROJECT_ID pelo seu Google Cloud ID do projeto
gcloud config set project PROJECT_ID
Se não implementou o seu próprio serviço do Cloud Run, siga os passos no Início rápido: implemente um contentor de exemplo pré-criado para selecionar ou criar um Google Cloud projeto e implementar um exemplo de back-end. Tome nota do URL da app, bem como da região e do ID do projeto onde as suas apps estão implementadas.
Ativar serviços necessários
O API Gateway requer que ative os seguintes serviços Google:
Nome | Título |
---|---|
apigateway.googleapis.com |
API do API Gateway |
servicemanagement.googleapis.com |
Service Management API |
servicecontrol.googleapis.com |
Service Control API |
Para confirmar que os serviços necessários estão ativados:
gcloud services list
Se não vir os serviços necessários listados, ative-os:
gcloud services enable apigateway.googleapis.comgcloud services enable servicemanagement.googleapis.com
gcloud services enable servicecontrol.googleapis.com
Para mais informações sobre os serviços gcloud
, consulte os
serviços gcloud
.
Criar uma configuração de API
Antes de poder usar o API Gateway para gerir o tráfego para o seu back-end do Cloud Run implementado, precisa de uma configuração da API.
Pode criar uma configuração da API através de uma especificação OpenAPI que contenha anotações especializadas para definir o comportamento escolhido do API Gateway. Tem de adicionar um campo específico da Google que contenha o URL de cada app do Cloud Run para que o API Gateway tenha as informações necessárias para invocar uma app.
- Crie um ficheiro de texto denominado
openapi2-run.yaml
. (Por conveniência, esta página refere-se à especificação OpenAPI por esse nome de ficheiro, mas pode atribuir-lhe outro nome, se preferir.) - Liste cada uma das suas apps na secção
paths
do ficheiroopenapi2-run.yaml
, conforme mostrado no exemplo seguinte:# openapi2-run.yaml swagger: '2.0' info: title: API_ID optional-string description: Sample API on API Gateway with a Cloud Run backend version: 1.0.0 schemes: - https produces: - application/json x-google-backend: address: APP_URL paths: /assets/{asset}: get: parameters: - in: path name: asset type: string required: true description: Name of the asset. summary: Assets operationId: getAsset responses: '200': description: A successful response schema: type: string /hello: get: summary: Cloud Run hello world operationId: hello responses: '200': description: A successful response schema: type: string
- No campo
title
, substitua API_ID pelo nome da sua API e substitua optional-string por uma breve descrição à sua escolha. Se a API ainda não existir, o comando para criar a configuração da API também cria a API com o nome que especificar. O valor do campotitle
é usado quando são geradas chaves de API que concedem acesso a esta API. Consulte os requisitos de ID da API para ver as diretrizes de nomenclatura da API. - No campo
address
na secçãox-google-backend
, substitua APP_URL pelo URL real do seu serviço do Cloud Run (o caminho completo da API chamada). Por exemplo:https://hello-abc1def2gh-uc.a.run.app
. - Introduza o seguinte comando, onde:
- CONFIG_ID especifica o nome da configuração da API.
- API_ID especifica o nome da sua API. Se a API ainda não existir, este comando cria-a.
- PROJECT_ID especifica o nome do seu Google Cloud projeto.
- SERVICE_ACCOUNT_EMAIL especifica a conta de serviço usada para assinar tokens para back-ends com autenticação configurada. Para mais informações, consulte o artigo Criar uma conta de serviço.
gcloud api-gateway api-configs create CONFIG_ID \ --api=API_ID --openapi-spec=openapi2-run.yaml \ --project=PROJECT_ID --backend-auth-service-account=SERVICE_ACCOUNT_EMAIL
Esta operação pode demorar vários minutos a ser concluída, uma vez que a configuração da API é propagada para os sistemas a jusante. A criação de uma configuração de API complexa pode demorar até dez minutos a ser concluída com êxito.
- Depois de criar a configuração da API, pode ver os respetivos detalhes executando este comando:
gcloud api-gateway api-configs describe CONFIG_ID \ --api=API_ID --project=PROJECT_ID
Implementar um gateway da API
Agora, pode implementar a sua API no API Gateway. A implementação de uma API no API Gateway também define um URL externo que os clientes API podem usar para aceder à sua API.
Execute o seguinte comando para implementar a configuração da API que acabou de criar no API Gateway:
gcloud api-gateway gateways create GATEWAY_ID \ --api=API_ID --api-config=CONFIG_ID \ --location=GCP_REGION --project=PROJECT_ID
where:
- GATEWAY_ID especifica o nome da gateway.
- API_ID especifica o nome da API do gateway da API associada a este gateway.
- CONFIG_ID especifica o nome da configuração da API implementada no gateway.
GCP_REGION é a Google Cloud região para o gateway implementado.
PROJECT_ID especifica o nome do seu Google Cloud projeto.
Após a conclusão com êxito, pode usar o seguinte comando para ver detalhes sobre o gateway:
gcloud api-gateway gateways describe GATEWAY_ID \ --location=GCP_REGION --project=PROJECT_ID
Anote o valor da propriedade defaultHostname
no resultado deste comando. Esta é a parte do nome do anfitrião do URL do gateway que usa para testar a implementação no passo seguinte.
Testar a implementação da API
Agora, pode enviar pedidos para a sua API através do URL gerado após a implementação da sua entrada.
Introduza o seguinte URL no navegador de Internet, onde:
- DEFAULT_HOSTNAME especifica a parte do nome do anfitrião do URL da gateway implementada.
hello
é o caminho especificado na configuração da API.
https://DEFAULT_HOSTNAME/hello
Por exemplo:
https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev/hello
Deverá ver o contentor do Cloud Run a executar a sua app no navegador.
Êxito! O gateway está a gerir o acesso ao serviço de back-end do Cloud Run.
Acompanhamento da atividade da API
Veja os gráficos de atividade da sua API na página API Gateway na Google Cloud consola. Clique na sua API para ver os respetivos gráficos de atividade na página Vista geral. Os pedidos podem demorar alguns momentos a ser refletidos nos gráficos.
Consulte os registos de pedidos da sua API na página Explorador de registos. Pode encontrar um link para a página do Explorador de registos na página do API Gateway na Google Cloud consola.
Depois de aceder à página do API Gateway:
- Selecione a API a ver.
- Clique no separador Detalhes.
- Clique no link em Registos.
Limpar
Para evitar incorrer em custos na sua conta do Google Cloud pelos recursos usados neste início rápido, pode:
Em alternativa, também pode eliminar o Google Cloud projeto usado para este tutorial.