Невозможно запустить шаблон потока данных с помощью клиентской библиотеки API (Java), поскольку я получаю исключение недопустимого аргумента - PullRequest
0 голосов
/ 05 января 2020

Интересным фактом является то, что я могу запустить шаблон Dataflow из облачной оболочки, а также из консоли игровой площадки Google OAuth2. Когда я пытаюсь запустить его, используя клиентскую библиотеку API с тем же набором данных, я получаю ошибку 400 Ошибочный запрос.

Используемый URL:

GenericUrl URL = new GenericUrl("https://dataflow.googleapis.com/v1b3/projects/servicetesting-g-1575763471750/templates:launch?gcsPath=gs://dataflow-templates/latest/GCS_Text_to_Cloud_PubSub");

Содержание тела сообщения:

{
  "jobName":"st-txt-to-pubsub",
  "parameters":
  {
    "inputFilePattern":"gs://soa_global_storage/input/my_input.txt",
    "outputTopic":"projects/servicetesting-g-1575763471750/topics/Input_Topic_PUB"
  },
        "environment": { "zone": "us-central1" }
 }

Исключение:

Exception in thread "main" com.google.api.client.http.HttpResponseException: 400 Bad Request
{
  "error": {
    "code": 400,
    "message": "The template parameters are invalid.",
    "errors": [
      {
        "message": "The template parameters are invalid.",
        "domain": "global",
        "reason": "badRequest"
      }
    ],
    "status": "INVALID_ARGUMENT"
  }
}

1 Ответ

0 голосов
/ 13 февраля 2020

Посмотрите на метаданные вашего шаблона, убедитесь, что имя поля совпадает с тем, которое вы называете в теле POST. Также проверьте, соответствуют ли параметры тесту регулярных выражений.

Как уже говорили другие, вы также должны исправить свою зону на us-central1-a, или вы можете оставить ее пустой.

Пример. метаданных, которые будут соответствовать вашему контенту:

    {
  "description": "enter your description",
  "name": "template_name",
  "parameters": [
    {
      "name": "inputFilePattern",
      "helpText": "Bucket URI",
      "regexes":["^gs://.*"],
      "label": "input file pattern"
    },
    {
      "name": "outputTopic",
      "helpText": "lorem ipsum",
      "label": "Topic on Pub/sub",
    }
  ]
}

Стоит отметить, что вы должны попробовать шаблон с параметрами в консоли. Если там не работает, никуда не сработает.

...