[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
加载中...
0票,平均分:0.00/10
10,042
X Facebook Hatena书签 口袋

这篇文章的作者

关于作者

万代洋一

我的主要工作是开发社交游戏的Web API,但幸运的是,我也有机会参与其他各种任务,包括市场营销。
我在Beyond中的图像版权采用CC0协议。