[GCP] 构建高效的云函数开发环境 [JavaScript]

大家好,
我是Mandai,Wild团队负责开发工作的成员。
您熟悉 GCP 的云函数吗?
它是一个无服务器计算环境,只需部署代码即可轻松设置执行环境;它本质上是 GCP 版本的 AWS Lambda。
它对于运行无需服务器配置的简单代码,或者快速连接仅使用 Cloud Pub/Sub 难以实现的服务非常有用。然而,无论代码多么简单,都必须经过测试才能上传。
尤其是在处理与实际运营相关的关键流程时,开发环境至关重要。
然而,我觉得关于如何实现云函数开发环境的信息并不多……所以我想尝试自己创建一个友好且易于开发的开发环境。
准备编辑
它原生支持 JavaScript VS Code, 我推荐
准备模块
我们将搭建一个本地运行云函数代码的环境。
也就是说,最低要求只需要一个谷歌提供的模块即可。
npm install @google-cloud/functions-framework -g
*2021/01/13 全局安装选项缺失,因此已添加。
这个单一模块允许您创建一个行为类似于云函数的 Web 服务器。
项目准备工作
Cloud Functions 允许您通过 `package.json` 加载必要的模块。
因此,请确保可以通过 `npm init` 访问必要的模块。
npm init # 输入有关项目的问题的适当答案
创建一个 Git 仓库
我个人认为,即使是最简单的脚本,最好也用 git 来管理,所以目前我只会运行 git init。
作为存储库 Cloud Source Repositories 非常方便,因为它集成了整个部署流程。
截至 2020 年 1 月,每月用户数限制为 5 人,存储空间和数据传输量限制为 50 GB,但我认为您可以继续使用免费套餐进行试用。
编写代码
云函数脚本需要一个入口点。
以下是一个使用 `main` 作为入口点的最小脚本示例。
模板
exports.main = (req, res) => { res.status(200).send('test'); }
在实际生产环境中,您需要将 `main` 指定为“要执行的函数”。
接下来,让我们在本地运行它并检查其运行情况。
本地执行
如果您在本地运行,请在命令行中运行以下命令以启动 Web 服务器并等待请求。
functions-framework --target=main
`--target` 选项是必需的,用于指定入口点。
如果没有出现错误,则说明 Web 服务器正在 localhost:8080 上运行,因此请尝试使用 curl 或类似工具运行它。
curl localhost:8080
如果上述命令返回“test”,则表示执行成功!
可以将这条命令编写成 npm 脚本,并按如下方式配置:
"scripts": { "start": "functions-framework --target=main" },
添加上述设置后,您就可以使用 npm start 运行它了。
热重装
使用 `npm start` 时,每次修改代码后都必须手动重启 `function-framework`。这很
麻烦,所以我打算尝试实现热重载。我会
安装一个名为 `npm-watch` 的模块。
npm install npm-watch
它看起来像是 nodemon 的一个包装模块,但由于不需要特殊配置,所以很容易上手。
添加 npm 脚本。
"scripts": { "start": "functions-framework --target=main", "watch": "npm-watch start" }
接下来,添加代码监视设置。
"watch": { "start": "*.js" }
监视键应该添加到顶层(与主目录和脚本目录处于同一层级)。
这有点复杂,但启动它的命令如下:
npm run watch
这将执行 npm run start,但如果对其下的 JS 文件进行任何更改,functions-framework 将自动重新启动。
到目前为止,package.json 文件的配置如下所示:
{ "name": "test", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "functions-framework --target=main", "watch": "npm-watch start" }, "author": "y.mandai", "license": "ISC", "dependencies": { "@google-cloud/functions-framework": "^1.3.2", "npm-watch": "^0.6.0" }, "watch": { "start": "*.js" } }
概括
这次,我们介绍了 functions-framework,这是一个用于实现 GCP 云函数脚本的实用模块。
使用此模块,您可以轻松地在本地测试云函数的行为。
在调整或测试脚本时重启 functions-framework 可能比较麻烦,因此最好使用 npm-watch 设置热重载环境,这样可以更高效地工作!
最后
我已推出“SEKARAKU Lab”,这是我所属系统开发公司的服务网站。Beyond
提供从服务器设计、构建到运维的一站式服务,如果您在服务器端开发方面遇到任何问题,欢迎随时联系我们。SEKARAKU
Lab:[https://sekarakulab.beyondjapan.com/](https://sekarakulab.beyondjapan.com/)
就这样。
0
