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: (gcloud.endpoints.services.deploy) INVALID_ARGUMENT:
Cannot convert to service config. http: undefined field <unknown>
on message <RequestType>
Verifique o ficheiro .proto
quanto a campos com correspondência incorreta entre as suas mensagens de
protocol buffer e
mapeamentos de transcodificação.
Por exemplo, o seguinte num ficheiro .proto
produz este erro. A opção de mapeamento em Unary
especifica um campo denominado
undefined
que não está na definição da mensagem Request
.
rpc Unary(Request) Response { option (google.api.http) { get : "/{undefined}" }; } message Request { string defined = 1; }
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
- 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.
- 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
- 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 (por exemplo,
example.com
) configurado no camponame
do ficheiroapi_config.yaml
, tem de validar o nome do domínio antes de poder implementar a configuração do serviço. - Se estiver a usar o domínio
cloud.goog
, confirme que o valor do camponame
está no seguinte formato e que o ID do projeto está correto:API_NAME.endpoints.YOUR_PROJECT_ID.cloud.goog
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 api_descriptor.pb api_config.yaml api_config_http.yaml