Implementar uma API num gateway
Pré-requisitos
Antes de poder implementar uma configuração da API no API Gateway, certifique-se de que tem:
Preparou o seu ambiente de desenvolvimento conforme descrito em Configurar o ambiente de desenvolvimento.
Criou uma configuração de API a partir da sua definição de API.
Requisitos de ID do gateway
Muitos dos comandos gcloud
apresentados abaixo requerem que especifique o ID da gateway no formato: GATEWAY_ID.
O gateway da API aplica os seguintes requisitos para o ID do gateway:
- Tem de ter um comprimento máximo de 49 carateres.
- Tem de conter apenas letras minúsculas, números ou travessões.
- Não pode começar com um traço.
- Não pode conter um caráter de sublinhado.
Definir o ponto final da configuração da API implementada
Quando implementa uma configuração da API num gateway, o API Gateway cria um URL único para o gateway no domínio gateway.dev
. Os seus clientes da API usam, em seguida, um URL no formato abaixo para aceder à configuração da API implementada:
https://GATEWAY_ID-HASH.REGION_CODE.gateway.dev
onde GATEWAY_ID é o nome da gateway, HASH é o código hash exclusivo gerado quando implementou a API e REGION_CODE é o código da localização na nuvem na qual implementou a gateway.
Por exemplo:
https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev
Implemente uma configuração de API num gateway
Use a CLI do Google Cloud para implementar uma configuração da API num gateway. Quando implementa a configuração da API, tem de especificar o nome da API. Se a entrada ainda não existir para a API, este comando também a cria.
Para implementar uma configuração da API num gateway:
Valide o ID do projeto devolvido pelo seguinte comando para se certificar de que o gateway não é criado no projeto errado.
gcloud config list project
Se precisar de alterar o projeto predefinido, execute o seguinte comando e substitua PROJECT_ID pelo Google Cloud ID do projeto Google Cloud no qual quer criar o serviço:
gcloud config set project PROJECT_ID
Veja a ajuda para o comando
gateway create
:gcloud api-gateway gateways create --help
Execute o seguinte comando para implementar a configuração da API no 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 ID do novo gateway. Se o gateway ainda não existir, este comando cria-o.
- API_ID especifica o ID da API do gateway da API associada a este gateway.
- CONFIG_ID especifica o ID da configuração da API implementada no gateway. Tem de especificar uma configuração da API quando cria um gateway.
GCP_REGION especifica a localização na nuvem da entrada implementada.
PROJECT_ID especifica o Google Cloud ID do projeto.
À medida que cria a entrada, o
gcloud
envia informações para o terminal.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
Este comando devolve o seguinte:
apiConfig: projects/PROJECT_ID/locations/global/apis/API_ID/configs/CONFIG_ID createTime: '2020-02-05T13:44:12.997862831Z' defaultHostname: my-gateway-a12bcd345e67f89g0h.uc.gateway.dev displayName: GATEWAY_ID name: projects/PROJECT_ID/locations/GCP_REGION/gateways/GATEWAY_ID serviceAccount: email: gateway-111111@222222-tp.iam.gserviceaccount.com state: ACTIVE updateTime: '2020-02-05T13:45:00.844705087Z'
Tome nota do valor da propriedade
defaultHostname
. Esta é a parte do nome do anfitrião do URL do gateway. Para aceder a uma configuração da API implementada nesta entrada, usa um URL no formato:https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev
A CLI gcloud aceita muitas opções, incluindo as descritas na referência gcloud. Além disso, para o API Gateway, pode definir as seguintes opções quando cria um gateway:
--async
: devolve o controlo ao terminal imediatamente, sem esperar que a operação seja concluída.--display-name=NAME
: especifica o nome a apresentar da gateway, ou seja, o nome apresentado na IU. Não use espaços no nome. Em alternativa, use hífenes e sublinhados. O valor predefinido é GATEWAY_ID.--labels=KEY1=VALUE1,KEY2=VALUE2,...
: especifica as etiquetas associadas ao gateway.
Gateways de fichas
Para listar gateways de um projeto específico:
gcloud api-gateway gateways list --project=PROJECT_ID
Este comando devolve o resultado no seguinte formato:
GATEWAY_ID LOCATION DISPLAY_NAME STATE CREATE_TIME UPDATE_TIME my-gateway us-central1 my-gateway ACTIVE 2021-01-07T00:04:19 2022-05-21T00:33:46
Para listar gateways para um projeto e uma região específicos:
gcloud api-gateway gateways list --location=GCP_REGION --project=PROJECT_ID
Use uma expressão filter
para listar os gateways associados a uma API específica:
gcloud api-gateway gateways list \ --filter="apiConfig:projects/PROJECT_ID/locations/global/apis/API_ID/*" \ --project=PROJECT_ID
Em alternativa, use este filter
para listar gateways para uma configuração de API específica:
gcloud api-gateway gateways list \ --filter="apiConfig:projects/PROJECT_ID/locations/global/apis/API_ID/configs/CONFIG_ID" \ --project=PROJECT_ID
Use os IDs do projeto, da região e da gateway para obter informações detalhadas sobre a gateway, incluindo a identidade da configuração da API implementada na gateway:
gcloud api-gateway gateways describe GATEWAY_ID \ --location=GCP_REGION --project=PROJECT_ID
Atualizar um gateway
Atualizar um gateway para:
- Implemente uma configuração de API diferente no gateway
- Atualize o nome a apresentar
- Atualize as etiquetas
Use o seguinte comando gcloud
para atualizar um gateway existente, em que UPDATE_OPTIONS é substituído pelo valor e pela opção do comando do gateway que quer atualizar:
gcloud api-gateway gateways update GATEWAY_ID \ UPDATE_OPTIONS --api=API_ID --location=GCP_REGION --project=PROJECT_ID
Por exemplo, para atualizar a configuração da API implementada no gateway:
gcloud api-gateway gateways update GATEWAY_ID \ --api-config=NEW_CONFIG_ID --api=API_ID --location=GCP_REGION --project=PROJECT_ID
em que NEW_CONFIG_ID especifica a nova configuração da API a implementar no gateway.
Para ver uma lista completa de argumentos e flags de atualização disponíveis, consulte a referência gcloud api-gateway gateways update ou use o seguinte comando para ver todas as opções de atualização:
gcloud api-gateway gateways update --help
Eliminar um gateway
Use o seguinte comando gcloud
para eliminar um gateway existente:
gcloud api-gateway gateways delete GATEWAY_ID \ --location=GCP_REGION --project=PROJECT_ID