我正在尝试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参数)来自前两个代码导入:
包com.amazonaws.services.lambda.runtime不存在
注意从SDK导入其他软件包工作正常,按照上面代码中的第三和第四个导入(我只是为了测试而输入的s3导入)。
我正在使用从http://sdk-for-java.amazonwebservices.com/latest/aws-java-sdk.zip
下载的AWS Java SDK版本 1.10.2 (aws-java-sdk-1.10.2.zip)非常感谢任何指示/建议。谢谢!
答案 0 :(得分:36)
这两个类都包含在aws-lambda-java-core jar中,该jar与AWS SDK分开分发。如果您不使用maven / gradle /其他可以从maven中心本地拉出的构建系统,您可以从上面链接的maven central下载它。
答案 1 :(得分:2)
经过一番搜索后,我在http://mvnrepository.com/artifact/com.amazonaws/aws-lambda-java-core/1.1.0找到了com.amazonaws.services.lambda.runtime.Context。 (我更喜欢这个网站来搜索.maven.org。通过提供sbt构建线,mvnrepository.com可以解决我的问题的核心。)
该类不在aws-java-sdk-lambda中,也不在aws-java-sdk-core或aws-java-sdk中。
答案 2 :(得分:1)
亚瑟,
您尝试将AWS Lambda中的java代码示例用于其他产品Amazon AWS SDK For Java。
请阅读AWS Lambda欢迎页面,也许在完成(创建帐户和其他人)的步骤之后,您可以使用您的类下载包(Context,LambdaLogger)
答案 3 :(得分:0)
我发现com.amazonaws.services.lambda.runtime.LambdaLogger位于:https://mvnrepository.com/artifact/com.amazonaws/aws-lambda-java-log4j/1.0.0
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-log4j</artifactId>
<version>1.0.0</version>
</dependency>
答案 4 :(得分:0)
对于那些使用sbt的人:
libraryDependencies ++= Seq(
"com.amazonaws" % "aws-java-sdk" % "1.11.241",
"com.amazonaws" % "aws-lambda-java-core" % "1.2.0"
)
检查最新版本的链接: