本文已使用 Google Cloud Translation API 自动翻译。
某些文档最好以原文阅读。
TypeScript 是一种免费的开源编程语言,由 Microsoft 开发和维护。它是 JavaScript 的超集,在语言中添加了类型化和基于类的面向对象编程。
AWS Lambda 是一种基于云的计算服务,让您无需预置或管理服务器即可运行代码。它是一个无服务器平台,可以运行您的代码以响应事件并自动为您管理计算资源。
您可以将 TypeScript 与 AWS Lambda 结合使用来编写无服务器函数。在本文中,我们将向您展示如何编写 TypeScript 函数并将其部署到 AWS Lambda。
TypeScript 函数是响应事件而执行的一段代码。它可以由 HTTP 请求、数据库操作或其他任何内容触发。
让我们创建一个由 HTTP 请求触发的 TypeScript 函数。首先,创建一个名为 index.ts 的文件并向其中添加以下代码:
import { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda';
export const handler = async (event: APIGatewayProxyEvent): Promise<APIGatewayProxyResult> => {
const body = JSON.parse(event.body);
return {
statusCode: 200,
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
message: `Hello, ${body.name}`
})
};
};
此函数由 HTTP 请求触发并返回问候消息。 handler
函数是该函数的入口点。它以一个“事件”对象作为参数并返回一个解析为“APIGatewayProxyResult”对象的“承诺”。
event
对象包含有关 HTTP 请求的信息,例如标头、正文和查询参数。 event
对象的 body
属性包含请求的 JSON 编码正文。
handler
函数解析请求的主体并返回 JSON 编码的响应。响应的“statusCode”属性设置为“200”,表示请求成功。 headers
属性用于设置响应的 Content-Type
标头。 body
属性包含返回给调用者的消息。
现在我们已经编写了 TypeScript 函数,我们需要将它部署到 AWS Lambda。我们将使用 Serverless Framework 来部署我们的功能。
无服务器框架是一个基于 Node.js 的框架,允许您将无服务器应用程序部署到 AWS Lambda。它使管理您的无服务器函数变得容易,并提供了许多功能,例如函数版本控制、[函数别名](https:// serverless.com/blog/serverless-app-aliases/) 和 功能阶段。
首先,使用 npm 安装无服务器框架:
npm install -g serverless
接下来,在项目的根目录中创建一个名为 serverless.yml 的文件,并向其中添加以下代码:
service: my-service
provider:
name: aws
runtime: nodejs8.10
functions:
myFunction:
handler: index.handler
events:
- http:
path: /
method: post
此文件包含无服务器应用程序的配置。 service
属性是您的应用程序的名称。 provider
属性用于配置提供者(在本例中为 AWS)。 runtime
属性用于指定您的函数将使用的 Node.js 运行时。
functions
属性用于配置无服务器函数。在这种情况下,我们有一个名为“myFunction”的函数。 handler
属性用于指定函数的入口点 (index.handler
)。 events
属性用于配置将触发函数的事件。在这种情况下,我们配置了一个 HTTP 事件,当对 /
路径发出 POST
请求时将触发该事件。
现在我们已经配置了无服务器应用程序,我们可以使用“无服务器部署”命令部署它:
serverless deploy
此命令会将您的无服务器应用程序部署到 AWS。它将创建一个 AWS Lambda 函数和一个 Amazon API Gateway API。
您可以通过向 /
路径发出 POST
请求来测试您的函数。您应该会看到如下消息:
{
"message": "Hello, John"
}
在本文中,我们向您展示了如何编写 TypeScript 函数并将其部署到 AWS Lambda。 TypeScript 是一种用于编写无服务器函数的出色语言,因为它为 JavaScript 添加了类型检查和基于类的面向对象编程。
如果您想了解有关 TypeScript 的更多信息,请查看 TypeScript 网站。
如果您想了解有关 AWS Lambda 的更多信息,请查看 AWS Lambda 文档。