Исключение ALPN не настроен должным образом
Я пытаюсь создать некоторые облачные метрики из scala, используя scio и apache beam для задачи потока данных.
Я получаю следующую ошибку:
java.lang.IllegalArgumentException: ALPN is not configured properly. See https://github.com/grpc/grpc-java/blob/master/SECURITY.md#troubleshooting for more information.
Я следовал за шагами в этом URL и добавил параметр JVM:-Djavaagent=/Users/user/Downloads/jetty-alpn-agent-2.0.6.jar
У меня также есть как env var: GOOGLE_APPLICATION_CREDENTIALS=/etc/recsys/recsys-dev.json
Код:
val pathToCredsFile = "/etc/recsys/recsys-dev.json"
val credentials = GoogleCredentials.fromStream(new FileInputStream(pathToCredsFile)).createScoped(Lists.newArrayList("https://www.googleapis.com/auth/cloud-platform"))
val settings = MetricServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credentials))
.build()
val metricServiceClient = MetricServiceClient.create(settings) <-throws ex whether or not I use settings
Могу ли я получить помощь?
2 ответа
Попробуйте посмотреть документ по поиску и устранению неисправностей Google Cloud Java, в частности, проверку совместимости. Предоставление его вывода было бы полезно для отладки.
jetty-alpn-agent-2.0.6 не поддерживает версии JRE 1.8.0u161 и выше. Обновление до 2.0.7 или 2.0.9 может работать лучше. Но использование Jetty-Alpn не рекомендуется. Если вы используете поддерживаемую платформу, лучше использовать tcnative или Conscrypt.
Должны также быть некоторые журналы INFO с некоторыми дополнительными деталями того, что было не так с Jetty ALPN/tcnative/Conscrypt (ищите "netty-tcnative недоступен (это может быть нормально)"; для каждого поставщика ALPN будет один оператор журнала, с Цепочки вызовов).
Вы можете добавить метод usePaneText() перед build(), чтобы решить проблему с не настроенным ALPN следующим образом:
val settings = MetricServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credentials))
.userPlainText()
.build()
Это отключит SSL для тестирования или среды разработки.
Примечание: не рекомендуется для prod env.