无法理解在开发 AWS Lambda 函数时使用哪个 Java SDK
Unable to understand which Java SDK to use when developing AWS Lambda Function
当我学习有关部署 AWS Lambda 函数的教程时,我在它的示例中看到它使用了包含接口 Speechlet 的 AWS Java SDK。
这是示例的屏幕截图:
而且官方文档也说我应该在这里使用Speechlet接口:https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/handling-requests-sent-by-alexa
但不幸的是,当我安装AWS Toolkit for Eclipse时,其工具包中并没有这样的界面。我也从官方网站下载了 AWS Java SDK,但找不到 Speechlet 界面。
因此,我再次搜索了一些关于如何使用 java 创建 Lambda 函数的教程,然后我想出了这个:http://docs.aws.amazon.com/toolkit-for-eclipse/v1/user-guide/lambda-tutorial.html
本教程使用JavaSDK,无Speechlet界面!这真的让我感到困惑,因为在它的其他文档中它清楚地说明它有一个 Speechlet 界面,而现在它没有。我不知道如何继续这个。
您的 AWS Lambda 函数需要在 Java 中支持的最低功能是 class 实现具有以下签名的方法:
outputType handler-name(inputType input) {
...
}
如果您的签名看起来像这样,则不需要第三方库。你可以有一个看起来像这样的 Lambda 处理程序,它可以正常工作。
package LambdaExample;
public class Hello {
public String lambdaHandler(String name) {
return String.format("Hello %s!", name);
}
}
在重要的用法中,您可能会看到看起来更像这样的处理程序签名:
outputType handler-name(inputType input, Context context) {
...
}
Context
object 可用于检索有关您的 Lambda 处理程序的信息,以及可用于将有关您的处理程序的信息记录到 Cloudwatch 的记录器。
Context
类型在 com.amazonaws.services.lambda.runtime.Context
中定义,它由 aws-lambda-java-core
提供,是 AWS 为使用 Java/JVM 与 Lambda 一起发布的一组库的一部分语言。 aws-lambda-java-core
与 Java 的 AWS 开发工具包分开。
您 运行 似乎是在使用非常具体的资源。您的图片显示了用于构建自定义 Alexa 技能并将其部署到 Lambda 的代码。如果您正在构建 Alexa 技能,那么您还需要包括 alexa-skills-kit SDK
,它提供了您看到的 Speechlet
界面。 Alexa Skills Kit SDK 也与 Java.
的 AWS SDK 分开
假设您的项目使用 Maven 作为项目 management/dependencies,将以下内容添加到 <dependencies>
部分应该可以让您使用 Lambda 和 Alexa:
<dependency>
<groupId>com.amazon.alexa</groupId>
<artifactId>alexa-skills-kit</artifactId>
<version>1.2</version>
<scope>compile</scope>
</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>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-log4j</artifactId>
<version>1.0.0</version>
</dependency>
当我学习有关部署 AWS Lambda 函数的教程时,我在它的示例中看到它使用了包含接口 Speechlet 的 AWS Java SDK。
这是示例的屏幕截图:
而且官方文档也说我应该在这里使用Speechlet接口:https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/handling-requests-sent-by-alexa
但不幸的是,当我安装AWS Toolkit for Eclipse时,其工具包中并没有这样的界面。我也从官方网站下载了 AWS Java SDK,但找不到 Speechlet 界面。
因此,我再次搜索了一些关于如何使用 java 创建 Lambda 函数的教程,然后我想出了这个:http://docs.aws.amazon.com/toolkit-for-eclipse/v1/user-guide/lambda-tutorial.html
本教程使用JavaSDK,无Speechlet界面!这真的让我感到困惑,因为在它的其他文档中它清楚地说明它有一个 Speechlet 界面,而现在它没有。我不知道如何继续这个。
您的 AWS Lambda 函数需要在 Java 中支持的最低功能是 class 实现具有以下签名的方法:
outputType handler-name(inputType input) {
...
}
如果您的签名看起来像这样,则不需要第三方库。你可以有一个看起来像这样的 Lambda 处理程序,它可以正常工作。
package LambdaExample;
public class Hello {
public String lambdaHandler(String name) {
return String.format("Hello %s!", name);
}
}
在重要的用法中,您可能会看到看起来更像这样的处理程序签名:
outputType handler-name(inputType input, Context context) {
...
}
Context
object 可用于检索有关您的 Lambda 处理程序的信息,以及可用于将有关您的处理程序的信息记录到 Cloudwatch 的记录器。
Context
类型在 com.amazonaws.services.lambda.runtime.Context
中定义,它由 aws-lambda-java-core
提供,是 AWS 为使用 Java/JVM 与 Lambda 一起发布的一组库的一部分语言。 aws-lambda-java-core
与 Java 的 AWS 开发工具包分开。
您 运行 似乎是在使用非常具体的资源。您的图片显示了用于构建自定义 Alexa 技能并将其部署到 Lambda 的代码。如果您正在构建 Alexa 技能,那么您还需要包括 alexa-skills-kit SDK
,它提供了您看到的 Speechlet
界面。 Alexa Skills Kit SDK 也与 Java.
假设您的项目使用 Maven 作为项目 management/dependencies,将以下内容添加到 <dependencies>
部分应该可以让您使用 Lambda 和 Alexa:
<dependency>
<groupId>com.amazon.alexa</groupId>
<artifactId>alexa-skills-kit</artifactId>
<version>1.2</version>
<scope>compile</scope>
</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>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-log4j</artifactId>
<version>1.0.0</version>
</dependency>