Funqy HTTP Binding with AWS Lambda

如果您希望允许 HTTP 客户端调用 AWS Lambda 上的 Funqy 函数,Quarkus 允许您通过部署为一个 AWS Lambda 而公开多个 Funqy 函数。此方法确实增加了常规 Funqy AWS Lambda 集成上的开销,并且还要求您使用 AWS API Gateway。 :iokays-category: quarkus :iokays-path: modules/ROOT/pages/_includes/extension-status.adoc :keywords: Quarkus, 中文文档, 编程技术

该技术被认为是 {extension-status}。 有关可能状态的完整列表,请查看我们的 FAQ entry.

遵循 AWS Lambda Http Guide 。它指导您在 AWS Lambda 上使用各种 HTTP 框架,包括 Funqy。

Funqy HTTP + AWS Lambda 绑定不能替代 HTTP 上的 REST。因为 Funqy 需要跨许多不同的协议和函数提供者进行移植,所以它的 HTTP 绑定非常极简,您将失去 REST 功能,例如链接以及利用缓存控制和条件 GET 等 HTTP 功能的能力。您可能需要考虑使用 Quarkus 的 Jakarta REST、Spring MVC 或 Vert.x Web Reactive 路由 support 代替。它们还可与 Quarkus 和 AWS Lambda 配合使用。

An additional Quickstart

除了生成 AWS Lambda Http Guide 中介绍的 AWS 项目外,还有一个快速启动,用于在 AWS Lambda 上运行 Funqy HTTP。

克隆 Git 存储库: git clone $${quickstarts-base-url}.git,或下载 $${quickstarts-base-url}/archive/main.zip[存档]。

解决方案位于 funqy-amazon-lambda-quickstart directory 中。

The Code

代码没什么特别的,更重要的是没有什么内容是特定于 AWS 的。Funqy 函数可以部署到许多环境,而 AWS Lambda 就是其中之一。Java 代码实际上与 funqy-http-quickstart 的代码完全相同。

Getting Started

使此快速启动运行的步骤与 AWS Lambda HTTP Guide 中定义的步骤完全相同。不同之处在于,您正在从快速启动中运行,并且 maven 依赖项略有不同。

pom.xml
<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-funqy-http</artifactId>
</dependency>
<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-amazon-lambda-http</artifactId>
</dependency>
build.gradle
implementation("io.quarkus:quarkus-funqy-http")
implementation("io.quarkus:quarkus-amazon-lambda-http")