Конечные точки gcloud раскрывают ошибку неразрешенного типа - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь развернуть службу, для которой требуется метка времени google protobuf , но я получаю сообщение об ошибке.

gcloud endpoints services deploy api_descriptor.pb api_config.yaml --validate-only

ERROR: (gcloud.endpoints.services.deploy) INVALID_ARGUMENT: Cannot 
convert to service config.
'ERROR: unknown location: Unresolved type '.google.protobuf.Timestamp''

моя команда для создания api_descriptor.pb:

protoc \
--plugin=protoc-gen-go=${GOBIN}/protoc-gen-go \
-I . proto/service.proto \
--descriptor_set_out=api_descriptor.pb \
--go_out=plugins=grpc:. \

соответствующий бит из файла прото, который требует google.protobuf.Timestamp:

syntax = "proto3";

package proto;

import "vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.proto";

message CandleStick {
    string ID = 1;
    double Open = 2;
    double Close = 3;
    double High = 4;
    double Low = 5;

    google.protobuf.Timestamp TimeStamp = 6;
}

Несколько часов безуспешно пытался решить эту проблему. Заранее спасибо!

1 Ответ

0 голосов
/ 19 мая 2018

В вашем вызове командной строки protoc, я думаю, вам нужно включить все импорты в сгенерированный дескриптор. Вы можете сделать это, используя --include_imports:

protoc \
--plugin=protoc-gen-go=${GOBIN}/protoc-gen-go \
--include_imports \
-I . proto/service.proto \
--descriptor_set_out=api_descriptor.pb \
--go_out=plugins=grpc:. \
...