Resolução de problemas de implementação da configuração do Cloud Endpoints

Esta página descreve como resolver problemas de erros que pode encontrar quando implementa a configuração do Cloud Endpoints. As mensagens de erro que vê contêm informações específicas do seu projeto. Por exemplo, pode ver uma mensagem de erro com o ID do seu projeto. Nesta página, verá valores de marcadores de posição, como YOUR_PROJECT_ID.

Após cada passo, execute novamente o comando gcloud endpoints services deploy para ver se o erro foi resolvido.

Não é possível converter para a configuração do serviço

ERROR: unknown location: http: In path template '[PATH]': unexpected end of input '/'.'

Este erro é apresentado quando um ou mais caminhos no seu documento OpenAPI incluem um caráter de barra invertida (/) no final. Para corrigir este problema, remova a barra invertida final de todos os caminhos. Por exemplo, o seguinte fragmento num documento OpenAPI resulta neste erro:

paths:
  "/echo/":
    post:
      description: "Echo back a given message."

Para corrigir este problema, remova a barra final de /echo/:

paths:
  "/echo":
    post:
      description: "Echo back a given message."

Não tem autorização para obter as definições do projeto

ERROR: (gcloud.endpoints.services.deploy) PERMISSION_DENIED:
Not allowed to get project settings for project YOUR_PROJECT_ID

  1. Autentique novamente com a CLI gcloud para confirmar que fez a autenticação com uma conta que tem autorização para aceder ao projeto apresentado na mensagem de erro:
    gcloud auth login

    É aberto um novo separador do navegador e é-lhe pedido que escolha uma conta.

  2. Confirme se o ID do projeto apresentado na mensagem de erro corresponde ao projeto no qual pretende implementar a configuração dos Endpoints: Google Cloud
    gcloud projects list
  3. Confirme se a CLI gcloud tem o ID do projeto correto definido como o projeto atual:
    gcloud config set project YOUR_PROJECT_ID

O autor da chamada não tem autorização

ERROR: (gcloud.endpoints.services.deploy) PERMISSION_DENIED:
Caller does not have permission 'servicemanagement.services.create' on project YOUR_PROJECT_ID

Quando implementa a configuração do Endpoints pela primeira vez, o Service Management cria um serviço gerido para a sua API. Para criar um serviço gerido, tem de ter, no mínimo, a função de Editor ao nível do projeto. Depois de o Service Management criar o serviço gerido, as autorizações mínimas necessárias para reimplementar uma configuração do Endpoints são a função de editor de configuração de serviços (roles/servicemanagement.configEditor) no serviço. Para mais informações, consulte o artigo Conceder acesso à API.

Não é possível validar a propriedade do nome de domínio

ERROR: (gcloud.endpoints.services.deploy) PERMISSION_DENIED:
Ownership for domain name YOUR_DOMAIN_NAME on project YOUR_PROJECT_ID cannot be verified

  • Se tiver um domínio personalizado (como example.com) configurado no campo host do seu documento OpenAPI, tem de validar o nome do domínio antes de poder implementar o seu documento OpenAPI.
  • Se estiver a usar o domínio cloud.goog, confirme que o valor do campo host está no seguinte formato e que o ID do projeto está correto:
    API_NAME.endpoints.YOUR_PROJECT_ID.cloud.goog
  • Se estiver a usar o domínio appspot.com (suportado apenas para o App Engine), confirme se o campo host está no seguinte formato e se o ID do projeto está correto:
    YOUR_PROJECT_ID.appspot.com

Resolução de outros erros

Se recebeu um erro que não está listado aqui ou se as informações não resolveram o seu problema, execute novamente o comando gcloud com a flag para apresentar informações de depuração:

gcloud --verbosity=debug endpoints services deploy openapi.yaml

O que se segue?