Guia de início rápido: proteger o tráfego para um serviço com a CLI gcloud
Nesta página, mostramos como implantar uma API no gateway de API para proteger o tráfego em um serviço de back-end.
Siga as etapas abaixo para implantar uma nova API e acessar um serviço de back-end no Cloud Run functions usando a Google Cloud CLI. Neste guia de início rápido, também descrevemos como usar uma chave de API para proteger o back-end contra acessos não autorizados.
Antes de começar
No console do Google Cloud , acesse a página Painel e selecione ou crie um projeto do Google Cloud .
Confirme se o faturamento está ativado no projeto.
Verifique se a Google Cloud CLI está salva e instalada na sua máquina.
Atualize os componentes
gcloud:gcloud components update
Defina o projeto padrão. Substitua PROJECT_ID pelo ID do projeto Google Cloud .
gcloud config set project PROJECT_ID
Ativar serviços obrigatórios
O gateway de API exige que você ative os seguintes serviços Google Cloud :
| Nome | Nome do serviço |
|---|---|
| API Gateway API | apigateway.googleapis.com |
| Service Management API | servicemanagement.googleapis.com |
| API Service Control | servicecontrol.googleapis.com |
Para ativar os serviços necessários:
Console do Google Cloud
No console do Google Cloud , acesse a página APIs e serviços > Biblioteca de APIs.
- Na página Biblioteca de APIs, digite o nome da API necessária na barra de pesquisa.
- Nos resultados da pesquisa, selecione a página da API.
- Na página da API, clique em Ativar.
- Repita essas etapas para cada um dos serviços listados na tabela anterior.
CLI do Google Cloud
Use os comandos a seguir para ativar os serviços:
gcloud services enable apigateway.googleapis.comgcloud services enable servicemanagement.googleapis.comgcloud services enable servicecontrol.googleapis.com
Para mais informações sobre os serviços do gcloud, consulte
serviços gcloud.
Implantar um back-end de API
O API Gateway fica na frente de um serviço de back-end implantado e processa todas as solicitações recebidas. Neste guia de início rápido, o gateway de API encaminha as chamadas recebidas para um back-end de função do Cloud Run chamado helloGET, que contém a função Node.js mostrada abaixo.
const functions = require('@google-cloud/functions-framework'); // Register an HTTP function with the Functions Framework that will be executed // when you make an HTTP request to the deployed function's endpoint. functions.http('helloGET', (req, res) => { res.send('Hello World!'); });
Siga as etapas no Guia de início rápido: implantar uma função do Cloud Run usando a Google Cloud CLI para fazer o download do código de amostra das funções do Cloud Run e implantar o serviço de back-end da função do Cloud Run. Seu administrador precisará conceder outros papéis à sua conta e à conta de serviço do Cloud Build, conforme descrito neste início rápido.
Copie o URL do serviço que aparece quando a função do Cloud Run é implantada. Você vai precisar dele ao criar a configuração da API em uma etapa posterior.
Criar uma API
Agora você já pode criar uma API no gateway de API.
Digite o seguinte comando, em que:
- API_ID especifica o nome da sua API; Consulte os requisitos de ID da API para ver as diretrizes de nomenclatura.
gcloud api-gateway apis create API_ID
Exemplo:
gcloud api-gateway apis create my-api
- API_ID especifica o nome da sua API; Consulte os requisitos de ID da API para ver as diretrizes de nomenclatura.
Após a conclusão, o comando a seguir pode ser usado para ver detalhes sobre a nova API:
gcloud api-gateway apis describe API_ID
Exemplo:
gcloud api-gateway apis describe my-api
Este comando mostra o seguinte:
createTime: '2020-02-29T21:52:20.297426875Z' displayName: my-api managedService: my-api-123abc456def1.apigateway.my-project.cloud.goog name: projects/my-project/locations/global/apis/my-api state: ACTIVE updateTime: '2020-02-29T21:52:20.647923711Z'
Copie o valor da propriedade managedService. Esse valor é usado para ativar a API em uma etapa subsequente.
Criar uma configuração de API
Antes de usar o gateway de API para gerenciar o tráfego para o back-end da API implantado, ele precisa de uma configuração de API.
Você pode criar uma configuração de API usando uma descrição OpenAPI que contenha anotações especializadas para definir o comportamento escolhido do gateway de API. Para mais detalhes sobre as extensões da OpenAPI compatíveis, consulte o seguinte:
A descrição OpenAPI usada neste guia de início rápido contém instruções de roteamento para o back-end da função do Cloud Run:
OpenAPI 2.0
# openapi-functions.yaml swagger: '2.0' info: title: API_ID optional-string description: Sample API on API Gateway with a Google Cloud Functions backend version: 1.0.0 schemes: - https produces: - application/json paths: /hello: get: summary: Greet a user operationId: hello x-google-backend: address: SERVICE_URL/helloGET responses: '200': description: A successful response schema: type: string
OpenAPI 3.x
# openapi-functions.yaml openapi: 3.0.4 info: title: API_ID optional-string description: Sample API on API Gateway with a Google Cloud Functions backend version: 1.0.0 # Define reusable components in x-google-api-management x-google-api-management: backends: functions_backend: address: SERVICE_URL/helloGET pathTranslation: APPEND_PATH_TO_ADDRESS protocol: "http/1.1" # Apply the backend configuration by referencing it by name. Set at the root so this applies to all operations unless overridden. x-google-backend: functions_backend paths: /hello: get: summary: Greet a user operationId: hello responses: '200': description: A successful response content: application/json: schema: type: string
Para fazer upload dessa descrição da OpenAPI e criar uma configuração de API usando a CLI gcloud:
Na linha de comando, crie um novo arquivo chamado
openapi-functions.yaml.Copie e cole o conteúdo da descrição da OpenAPI no arquivo recém-criado.