厌倦了仅仅为了测试您的 AWS Lambda 而部署到云?这就像给自己寄一封信只是为了校对它——缓慢、昂贵,而且完全没有必要。
如果您可以直接从 JavaScript 应用程序在本地调用 Lambda,会怎样?无需云端往返,无需等待,只需即时反馈。借助 AWS SAM(无服务器应用程序模型) 和少量 Node.JS/JavaScript,您可以在计算机上测试和调试 Lambda,从而节省时间和金钱?。
我使用的是 Windows PC,并在继续之前设置了以下内容:
aws --version
sam --version
docker --version
node --version
我们将首先使用 init 命令创建一个演示应用程序,然后进一步在应用程序代码 (Nodejs) 中调用 lambda。
1>导航到您要设置项目的文件夹。
sam init --runtime nodejs
这将创建一个基本的 Hello world 应用程序。它有一个简单的 Lambda 处理程序,它接收事件并返回从特定 URL 接收的数据以及一条 Hello World 消息。
让我们更深入地了解这些文件实现的内容以及代码的工作原理:
您会注意到 package.json 中有一个名为“axios”的依赖项,请注意该模块仅用于向给定 URL 发出 HTTP 请求。
2> 通过导航到包含该文件的文件夹来安装 package.json 中的依赖项,然后使用命令:
npm install
3> 现在,通过运行命令在本地启动 Lambda 服务。
sam local start-lambda
所以,现在本地 Lambda 服务正在端口 3001 上运行。
4> 我们将使用 AWS SDK 从应用程序代码中调用 lambda 函数。为此,我们创建一个示例 node.js 项目。创建一个新文件夹,导航到该文件夹并输入命令。
npm init npm install aws-sdk --save
5> 现在创建 test.js 文件并引用 AWS SDK,配置 AWS 区域,实例化 Lambda 对象。
aws --version
这里的参数对象,调用Lambda Function,根据应用代码替换函数名。该端点是指启动本地 lambda 服务的端点。
6> 现在在新终端中运行命令:
sam --version
7> 验证和测试: 当您导航回 AWS SAM powershell 时,您可以看到它在本地调用 Lambda 处理程序,方法是首先将函数加载到 Docker 容器中,然后使用我们的输入事件数据执行它。
现在导航回另一个终端,您可以看到 Lambda 函数的响应,状态代码 200 ✅,消息 Hello World,以及位置 IP 地址?。
现在您已经有了 — 一种更快、更智能的方式来测试您的 AWS Lambda 函数,而无需离开舒适的本地设置。通过使用 JavaScript 和 NodeJS 在本地调用 Lambda,您已经将效率提升到了一个全新的水平。现在,您可以更快地迭代、更智能地调试并构建更酷的应用程序,同时保持较低的云成本。
祝您编码愉快,祝您的 Lambda 在本地始终像在云中一样顺利运行! ?
以上是使用 Javascript/Node.js 在本地运行 lambda的详细内容。更多信息请关注PHP中文网其他相关文章!