AWS java sdk 1.10.2 中不存在包 com.amazonaws.services.lambda.runtime
Posted
技术标签:
【中文标题】AWS java sdk 1.10.2 中不存在包 com.amazonaws.services.lambda.runtime【英文标题】:package com.amazonaws.services.lambda.runtime does not exist in AWS java sdk 1.10.2 【发布时间】:2015-09-18 02:31:39 【问题描述】:我正在尝试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 和通过命令行(通过 -cp 指定 aws sdk 参数)从代码的前两个导入中遇到相同的错误:
com.amazonaws.services.lambda.runtime 包不存在
注意从 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 下载
任何方向/建议将不胜感激。谢谢!
【问题讨论】:
【参考方案1】:这两个类都包含在 aws-lambda-java-core jar 中,该 jar 与 AWS 开发工具包分开分发。如果您不使用 maven/gradle/其他可以从 maven Central 本地提取的构建系统,您可以从上面的链接中的 maven Central 下载它。
【讨论】:
谢谢大卫 - 我很难从 AWS 中找到下载链接,但能够按照您的建议从 Maven 获取它,但导入不起作用!干杯。 @David- 我也面临着类似的问题。当我使用 cmd - 'sam local start-api' 从终端盯着应用程序时。它工作正常,但是当我通过右键单击“template.yml”文件开始时。它给出了这个错误【参考方案2】:-
在 Eclipse 中从市场添加 AWS 插件,制作 aws lambda 项目。
使用下面三个依赖来制作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>
【讨论】:
【参考方案3】:经过一番搜索,我在 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 构建线来解决我的问题的核心。)
该类不在 aws-java-sdk-lambda 中,也不在 aws-java-sdk-core 或 aws-java-sdk 中。
【讨论】:
【参考方案4】:对于那些正在使用 sbt 的人:
libraryDependencies ++= Seq(
"com.amazonaws" % "aws-java-sdk" % "1.11.241",
"com.amazonaws" % "aws-lambda-java-core" % "1.2.0"
)
查看最新版本的链接:
https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk https://mvnrepository.com/artifact/com.amazonaws/aws-lambda-java-core【讨论】:
【参考方案5】:亚瑟,
您尝试将来自 AWS Lambda 的 java 代码示例用于另一个产品 Amazon AWS SDK For Java。
请阅读 AWS Lambda 欢迎页面,也许在(创建帐户和其他)步骤之后,您可以下载包含您的类(上下文、LambdaLogger)的包
【讨论】:
这里非常不鼓励仅链接的答案,因为链接将来可能会失效。我建议您使用您引用的来源中的引用来编辑您的答案。 感谢 Battr 阐明 AWS SDK 库和 AWS Lambda 库之间的区别。【参考方案6】:我发现 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>
【讨论】:
此外,如果您希望 Alexa 技能 SDK 中的示例 Lamba 函数登录到 CloudWatch,则需要包含此程序包。以上是关于AWS java sdk 1.10.2 中不存在包 com.amazonaws.services.lambda.runtime的主要内容,如果未能解决你的问题,请参考以下文章
在iOS Swift中不使用AWS SDK在Amazon S3存储桶中上传的背景图像(背景模式)
AWS lambda:如果log4j.xml中不存在环境变量,有没有办法设置默认值?
AWS SDK Java 版本 2 - 是不是有与版本 1 中的 doesObjectExist() 等效的版本?