我有一个 java 应用程序,我在其中使用了 Flink Api
。所以基本上我想用代码做的是创建两个记录很少的数据集,然后将它们注册为两个表以及必要的字段。
DataSet<Company> comp = env.fromElements(
new Company("Aux", 1),
new Company("Comp2", 2),
new Company("Comp3", 3));
DataSet<Employee> emp = env.fromElements(
new Employee("Kula", 1),
new Employee("Ish", 1),
new Employee("Kula", 3));
tEnv.registerDataSet("Employee", emp, "name, empId");
tEnv.registerDataSet("Company", comp, "cName, empId");
然后我尝试使用 Table API
连接这两个表:
Table anotherJoin = tEnv.sql("SELECT Employee.name, Employee.empId, Company.cName FROM " +
"Employee RIGHT JOIN Company on Employee.empId = Company.empId");
我只是在控制台上打印结果。 这在我的机器上本地完美运行。我通过使用具有依赖项的 maven-shade-plugin
创建了一个 fat-jar
,我试图在 AWS Lambda
中执行它。
因此,当我尝试在那里执行它时,会抛出以下异常(我只发布前几行):
reference.conf @ file:/var/task/reference.conf: 804: Could not resolve substitution to a value: ${akka.stream.materializer}: com.typesafe.config.ConfigException$UnresolvedSubstitution com.typesafe.config.ConfigException$UnresolvedSubstitution: reference.conf @ file:/var/task/reference.conf: 804: Could not resolve substitution to a value: ${akka.stream.materializer} at com.typesafe.config.impl.ConfigReference.resolveSubstitutions(ConfigReference.java:111) at com.typesafe.config.impl.ResolveContext.realResolve(ResolveContext.java:179) at com.typesafe.config.impl.ResolveContext.resolve(ResolveContext.java:142)
我在 Lambda 中执行之前提取了 jar,碰巧看到所有依赖项都在那里。我不知道哪里出了问题?
如有任何帮助,我们将不胜感激。
最佳答案
您需要在 pom -> maven-shaded-plugin -> 配置部分添加此代码:
<transformers>
<!-- append default configs -->
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>reference.conf</resource>
</transformer>
</transformers>
关于java - 无法解析对 AWS Lambda 中值 : ${akka. stream.materializer} 的替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48904881/