Периодическая проблема 401 без проверки подлинности при вызове потока данных Google RestApi - PullRequest
0 голосов
/ 09 ноября 2019

Требуется программно ускорять пакетные потоки данных из потокового потока данных с помощью Google Rest API. Для этого мы использовали реализацию Java. Поток пакетных данных будет ускоряться, даже когда поток данных получает сообщение. Это работает довольно хорошо в течение некоторого времени, но иногда мы получаем 401 - неаутентифицированная ошибка . Это периодически возникающая проблема (например, иногда 15-20 потоков данных запускаются, выполняют свою работу и умирают. Примерно через 30 минут, когда он пытается снова развернуть поток пакетных данных, он выдает ошибку 401) Даже я пытался обновить токенперед получением токена по умолчанию, используя приведенный ниже фрагмент кода.

AccessToken access = ComputeEngineCredentials.getApplicationDefault().getAccessToken();
CloseableHttpClient client = HttpClientBuilder.create().useSystemProperties().build();

 HttpPost request =
    new HttpPost("https://dataflow.googleapis.com/v1b3/projects/dataflow-begining/templates:launch?gcsPath=gs://template/test.json");
 request.setHeader("Authorization", "Bearer "+access.getTokenValue());
 client.execute(request);

, пожалуйста, помогите мне понять, если я здесь что-то не так делаю. Или предложите, если есть лучший подход к этому.

Примечание: мы не можем использовать ключ serviceaccount для получения токена доступа, так как ключ .json недоступен. И у нас нет clientId или секрета клиента для отправки из нашей Java-программы.

Любая помощь приветствуется.

...