包 com.amazonaws.services.lambda.runtime 在 AWS java sdk 1.10.2 中不存在

package com.amazonaws.services.lambda.runtime does not exist in AWS java sdk 1.10.2

我正在尝试 Getting Started (Authoring AWS Lambda Code in Java) 页面中的 Java 代码示例,但我卡住了,因为 com.amazonaws.services.lambda.runtime pacakge 似乎丢失了

示例代码如下:

package example;

import com.amazonaws.services.lambda.runtime.Context;      //package does not exist error
import com.amazonaws.services.lambda.runtime.LambdaLogger; // package does not exist error
import com.amazonaws.services.s3.AmazonS3;       // import works (not needed, I've put them in for testing import)
import com.amazonaws.services.s3.model.S3Object; // import works (not needed, I've put them in for testing import)

public class Hello {
    public String myHandler(int myCount, Context context) {
        LambdaLogger logger = context.getLogger();
        logger.log("received : " + myCount);
        return String.valueOf(myCount);
    }
}

我在 Netbeans 中和通过命令行(指定 aws sdk thorugh -cp 参数)从代码的前两个导入中遇到了相同的错误:

package com.amazonaws.services.lambda.runtime does not exist

请注意,根据上述代码的第三次和第四次导入,从 SDK 导入其他包工作正常(我放入的 s3 导入只是为了测试)。

我正在使用 AWS Java SDK 的版本 1.10.2 (aws-java-sdk-1.10.2.zip) , 下载自 http://sdk-for-java.amazonwebservices.com/latest/aws-java-sdk.zip

任何 directions/suggestions 将不胜感激。谢谢!

这两个 类 都包含在 aws-lambda-java-core jar 中,它与 AWS SDK 分开分发。如果您不使用 maven/gradle/some 其他可以从 maven central 本机拉取的构建系统,您可以从上面 link 的 maven central 下载它。

亚瑟,

您尝试使用 AWS Lambda for another product Amazon AWS SDK For Java 中的 java 代码示例。

请阅读 AWS Lambda 欢迎页面,也许在执行完(创建帐户和其他)步骤后,您可以使用 类(上下文,LambdaLogger)

下载程序包

经过一番搜索,我在 http://mvnrepository.com/artifact/com.amazonaws/aws-lambda-java-core/1.1.0 中找到了 com.amazonaws.services.lambda.runtime.Context。 (与 search.maven.org 相比,我更喜欢这个站点。mvnrepository.com 通过提供 sbt 构建行来解决我的问题的核心。)

class 不在 aws-java-sdk-lambda 中,也不在 aws-java-sdk-core 或 aws-java 中-sdk.

我在 https://mvnrepository.com/artifact/com.amazonaws/aws-lambda-java-log4j/1.0.0

中找到 com.amazonaws.services.lambda.runtime.LambdaLogger
<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-lambda-java-log4j</artifactId>
    <version>1.0.0</version>
</dependency>
  1. 在 eclipse 中从 market place 添加 AWS 插件,制作 aws lambda 项目。
  2. 使用下面三个依赖制作fat jar

    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-lambda</artifactId>
        <version>1.11.76</version>
    </dependency>
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-lambda-java-core</artifactId>
        <version>1.1.0</version>
    </dependency> 
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-lambda-java-events</artifactId>
        <version>1.3.0</version>
    </dependency>
    

对于那些正在使用 sbt 的人:

libraryDependencies ++= Seq(
  "com.amazonaws" % "aws-java-sdk" % "1.11.241",
  "com.amazonaws" % "aws-lambda-java-core" % "1.2.0"
)

查看最新版本的链接:

对我来说,intellij 的解决方案是删除所有 .iml 文件和 invalidate cache/restart.