异常ALPN配置不正确

时间:2018-10-22 18:56:48

标签: security google-cloud-platform grpc apache-beam alpn

我正在尝试使用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

我也有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 个答案:

答案 0 :(得分:0)

尝试查看Google Cloud Java Troubleshooting文档,尤其是compatibility checker。提供其输出将有助于调试。

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都有一个日志语句提供者,并带有回溯。)

答案 1 :(得分:0)

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

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

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

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