У меня есть служба grpc, которая принимает в качестве входных данных сообщение, содержащее поля типа protobuf.Any, и я не могу найти способ написать правильный ввод JSON для него.Я работаю на GKE, с конечной точкой облака ESP и моим сервисом, работающим в одном модуле.
Прототипы выглядят так:
message AnyArray {
repeated google.protobuf.Any value = 1;
}
message Metric {
string metric = 1;
int64 timestamp = 2;
double value = 3;
map<string, AnyArray> metadata = 4;
}
Я пробовал несколько комбинаций для входного json безК счастью, в большинстве случаев возвращаются конечные точки облака: «Прото-поле не повторяется, не может быть начальный список».Неудачные примеры:
{
"metadata": {
"sample-key": {
"value": [1, "one"]
}
},
"metric": "request-count",
"timestamp": 1528425789,
"value": 0
}
{
"metadata": {
"sample-key": {
"value": [{
"@type": "type.googleapis.com/google.protobuf.Duration",
"value": "1.212s"
}, {
"@type": "type.googleapis.com/google.protobuf.Duration",
"value": "1.212s"
}]
}
},
"metric": "request-count",
"timestamp": 1528425789,
"value": 0
}
Ответ от ESP
{
"code": 3,
"message": "metadata[0].value: Proto field is not repeating, cannot start list.",
"details": [{
"@type": "type.googleapis.com/google.rpc.DebugInfo",
"stackEntries": [],
"detail": "internal"
}]
}
Любая помощь будет принята с благодарностью.
Спасибо!