CC.*_*CC. 4 java amazon-web-services maven aws-lambda
我正在尝试更新我的项目,以便通过使用 bom 配置来使用 SDK v2。我已经更新了我的POM文件,但现在RequestHandler并Context不能找到。这是我的 Maven 配置文件
<dependencyManagement>
<dependencies>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>bom</artifactId>
<version>2.1.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>lambda</artifactId>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
而我之前的配置工作
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-core</artifactId>
<version>1.2.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
似乎无法找到我应该导入的内容来拥有丢失的类。还是在 V2 中,有不同的签名?
这是我的课:
public class Cron implements RequestHandler<Object, Object> {
public Object handleRequest(final Object input, final Context context) {
Run Code Online (Sandbox Code Playgroud)
感谢您的任何指针。
抄送
看起来您的类路径中仍然需要同时拥有 SDK v1 和 SDK v2。
例如,查看Lambda Java 文档,您可以看到所有导入仍然以com.amazonaws(SDK v1) 而不是software.amazon(SDK v2)开头。
他们列出的示例之一是blank-java,他们将其描述为“具有事件库、高级日志记录配置以及调用 Lambda API 以检索帐户设置的 Java 2.x 的 AWS 开发工具包的 Java 函数”
如果您查看该示例应用程序的pom.xml,您会看到com.amazonaws和software.amazon包混合在一起。
因此,要么他们没有将所有内容都移植到 SDK v2,要么他们仍然希望您使用 SDK v1 中的接口 - 然后可以从 SDK v2 中使用更多功能代码(非接口代码)。
与此答案类似,您不必将所有 SDKv1 导入到您的项目中,而应该继续导入aws-lambda-java-core(除了 SDKv2 之外)。它包含足以实现入口点的类的子集,具有与 v1 中相同的完全限定名称。
此外,如果您需要像这样的事件接口,S3Event您可以拉入aws-lambda-java-events.
| 归档时间: |
|
| 查看次数: |
448 次 |
| 最近记录: |