【问题标题】:package com.amazonaws.services.lambda.runtime does not exist in AWS java sdk 1.10.2AWS java sdk 1.10.2 中不存在包 com.amazonaws.services.lambda.runtime
【发布时间】: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 下载

任何方向/建议将不胜感激。谢谢!

【问题讨论】:

    标签: java aws-sdk aws-lambda aws-java-sdk


    【解决方案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】:
    1. 在 Eclipse 中从市场添加 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>
      

    【讨论】:

      【解决方案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"
        )
        

        查看最新版本的链接:

        【讨论】:

          【解决方案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,则需要包含此程序包。
          猜你喜欢
          • 1970-01-01
          • 2020-05-08
          • 1970-01-01
          • 2020-06-12
          • 1970-01-01
          • 2021-02-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多