0

我正在尝试使用 scio 和 apache Beam 从 scala 创建一些云指​​标来执行数据流任务。
我收到以下错误:

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

我也有环境变量: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

我能得到一些帮助吗?

4

2 回答 2

0

您可以在 build() 之前添加 usePaneText() 方法来解决 ALPN 未配置问题,如下所示:

val settings = MetricServiceSettings.newBuilder()
  .setCredentialsProvider(FixedCredentialsProvider.create(credentials))
  .userPlainText()
  .build()

这将禁用 SSL 以进行测试或开发环境。

注意:不推荐用于产品环境。

于 2020-12-23T11:25:51.193 回答
0

尝试查看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 提供者都会有一个日志语句,其中回溯)。

于 2018-11-19T19:29:54.417 回答