Baidu Serverless VSCode Extension 是百度云 Serverless 产品 CFC 的 VSCode 插件,该插件结合了 CFC 本地命令行工具 BSAM CLI,可以帮您快速创建、管理本地的 CFC 函数,同时借助 Docker 轻松实现函数在本地的执行和 Debug。
- 本地函数快速创建
- 本地函数的编译与依赖安装
- 本地函数执行
- Nodejs、Python、Java 函数本地 Debug
- 本地函数部署到云端
- 自定义测试事件的创建
- 多地域云端函数列表、下载
- 云端函数调用
- 创建您的百度云账号,并在个人信息的『安全认证』中创建一个 Access Key;
- 执行
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple bce-sam-cli
以安装 BSAM CLI。插件在启动时也会检测 BSAM CLI 是否已安装,您可根据插件的提示来操作安装; - 安装 Docker。您可访问 Docker 官网,根据您的操作系统下载不同的安装包进行安装。
进入插件面板,在『本地函数』栏点击『···』,并选择『创建函数』,根据弹窗的提示步骤即可完成本地函数的创建,函数默认存储路径为当前打开的工作空间的根目录。新函数均使用模板代码,您可在函数创建后修改函数的代码与配置。
以 NodeJS 函数为例,创建后的目录结构如下:
.
├── README.md
├── src <-- 源文件文件夹,存放函数源码和依赖库
│ ├── index.js <-- nodejs 函数源码
│ ├── package.json <-- nodejs 依赖管理文件
│ └── tests <-- 单元测试
│ └── unit
│ └── test_handler.js
└── template.yaml <-- BSAM 模型文件,存储函数配置信息
函数创建完成后,您可在『本地函数』栏中看到新创建的函数,每行函数均有快捷功能图标,如下图所示。
函数执行前可能需要下载依赖包和执行编译,CFC 函数的执行环境是 Linux,您在本地下载的依赖和编译结果可能与 CFC 执行环境不兼容。为了避免这一情况,本插件集成了依赖安装与编译功能,您无需手动为函数来安装依赖与编译。 在『本地函数』栏对某个函数点击右键,选择『安装依赖与编译』,插件即会根据函数的运行时类型来做相关的操作。
插件集成了 CFC 云端所有触发器事件,若您想用自定义测试事件来执行函数,您可以在『本地函数』栏对某个函数点击右键,选择『创建测试事件』,根据弹窗提示在本地创建一个测试文件,创建完成后您可自行修改该文件,在执行函数时选择该事件。
为了保证函数能够执行与 Debug,请您确定您已安装 Docker 并启动。 执行函数有两种方式,一种是通过点击『本地函数』栏函数所在行的执行图标,一种是在函数代码编辑框中,点击 handler 函数上方的 "Local Invoke"。
Debug 函数同样可使用这两种方式启动,您需要首先在函数文件中添加断点,才可启动 Debug。插件目前支持 NodeJS、Python 和 Java 函数的 Debug 功能。
若您已登录云端账号,在『本地函数』栏对某个函数点击右键,选择『上传函数』,即可将函数部署到 CFC 云端。若您尚未登录,请您先参考下面的云端账号功能进行登录。
如下图所示,在『云端函数』栏点击『···』,并选择『绑定新账户』,根据提示输入您账号的 AK、SK 及自定义别名。
您可以绑定多个账户,通过『切换账户』来使用不同的账户,通过『切换地域』来显示当前账号下对应区域的云端函数列表。
在绑定好百度云账户后,『云端函数』栏会显示您的云端函数列表,如下图所示。
您可点击执行图标来调用云端函数,点击下载图标来把云端函数下载到本地目录。对非编译型语言,比如 NodeJS、Python 等,下载后插件会自动为函数生成 Template.yaml 文件。但是对编译型语言 Java、Golang 等,由于下载结果可能不包含函数源码文件,因此不为其生成 .yaml 文件。
您可在 VSCode 的 Settings->Extensions->BCE Serverless Configuration 中查看插件的配置项,如图所示。
-
Bsam Cli Location: 默认情况下,插件会在您的
$PATH
路径下查找 BSAM CLI 的可执行文件,一般情况下您通过 pip3 安装后无需手动配置该项。若您安装在非$PATH
路径下,您可修改该配置。 -
插件日志: 在您对插件的操作过程中,相关的日志会输出到 VSCode OUTPUT 的 "BaiduBCE CFC" 中。默认日志输出 Level 为 INFO,您可在 Log Level 项中修改 Level。
-
Deploy Endpoint:在您配置了云端函数的地域后,该配置会自动切换为对应地域的域名。若您期望把函数部署到私有服务地址,可修改该配置。
-
Max Detect Depth:插件会在当前工作空间下的路径下查找函数,该项用于配置查找函数的路径深度。
-
Skip Pull Image:默认情况下,插件每次执行、Debug 函数时会从百度镜像仓库检查镜像是否有更新,若有更新则更新后再继续执行。检查操作会耗费一点时间,若您网络状况不好或期望能快速执行函数,可以勾选此项。
使用 VSCode 打开项目代码,按 F5
或执行菜单项 Run->Start Debugging
即可在本地启动插件。
# 安装依赖
npm install
# 执行测试用例
npm test
请采用 typescript 编写,所有合理的改动、修复、测试用例或者文档的提交都会被接收。
百度如流讨论群: 3254091