课时5:函数的调试与部署

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
函数计算FC,每月15万CU 3个月
简介: 函数的调试与部署

Serverless AI训练营:课时5:函数的调试与部署

课程地址:https://developer.aliyun.com/trainingcamp/1eeaedf056f14ad98e9986c31068e939?spm=a2c6h.26142516.J_2566289780.1.37c67cbd7bCsFs

课时5:函数的调试与部署

内容介绍
一、引入举例

二、函数计算及相关的开发工具

三、函数部署

 

一、引入举例

相对于来说,调试的部分是比较困难的,因为调试的本身就是Serverless架构的一大弱点。

引入:写代码为什么要有调试的过程呢?不调试行不行?

上学的时候无论是考试还是做什么都少不了一个检查的过程,比如说写完作业,爸妈就会说写完了检查一下;考试的时候老师也会说,答完卷检查一下,一会儿就要交卷了;

在我们做完某件事情的时候,都有这样一个检查的过程,来保证我们尽可能的少犯错误或者不犯错误,程序也是如此;

*写完的代码是否有BUG

*代码在函数上是否可以运行的起来

*函数运行是否和自己的预期一致

*代码是否会进行一些奇奇怪怪的操作

*......

写了一堆代码,难免这些代码会做一些奇奇怪怪的事情。

比如说:少了一个字母,用错了一个标点符号,或者说程序的输出与预期的是不一致的;或者程序存在逻辑问题,程序在处理某些业务时,少考虑了一些因素等等很多问题....

所以这个时候我们就需要自己检查一下看看是不是OK的,如果不OK马上修改,如果OK就提交代码、上传代码、部署代码等。那么这个过程就可以认为是我们调试的过程,当然,调试也并不是这样简单容易的,有很多的方法和理论。

 

二、函数计算及相关的开发工具

1、云调试

打开浏览器,进入项目页面,点击invoke按钮进行调试就可以了

image.png

当左侧有一个项目的时候,只需要点击右边的invoke他就可以输出目标结果。

大家可以看到在线调试这个图我们已经完成了调试↓

image.png

输出了hello world,这种方法非常简单,对于临时使用是非常有效果的,但对于稍微麻烦一些的项目可能就不大适合在线上调试了,这个时候我们就需要本地开发和调试方法,毕竟我们大部分的代码都是在本地来进行开发和调试的,虽然说现在大家都在云端写代码、云端开发、云端抵BUG是未来的趋势;但是,至少目前来看还是本地开发更习惯、更靠谱一些。所以这个时候就需要插件命令行工具。

2、命令行工具

首先,在安装命令行工具之后如果想进行本地调试,还需要安装docker,安装之后就可以通过invoke的指令来进行本地的调试了。

image.png

当我们输入完指令

jiangyu@B-165MLVDL-0004 demo03  % fun local invoke demo03/demo03

按回车之后,会顺利的输出相关的结果

image.png

当然,如果是第一次使用,可能也会涉及到通过拉取镜像的一个过程。

3VSCode插件

如果要在编辑器中写代码,调试的话,要有VSCode插件,只需要点击VSCode运行功能,插件就可以自动拉起docker帮助我们进行调试。

image.png

举例调试一个项目<demo-03>

只需要点击这个按钮即可(下图鼠标位置)↓

image.png

可以看到顺利的输出了相关的结果↓

image.png

可以看到这张图片已经顺利的输出了预期结果↓。

image.png

4、无工具调试

没有docker是不行的,因为调试机制的本身就是要依赖docker的;但是,人类往往是具有创造力的,没有条件就要创造条件,也可无工具调试。

image.png

以拍三为例,只需要增加一段代码,来调试来调用我们的方法,至于event可以采用我们即将使用的触发器的情况,这样就可以实现我们简单的调试方法了。

调试方法对比

 

云调试

命令工具

VSCode插件

无工具调试

是否本地执行

否(云端)

是否需要安装工具

是否需要安装 Docker

是否可以模拟真实环境

绝大部分是

绝大部分是

部分是

是否简单快速

是否符合开发习惯

在一般小的情况下,不想开编辑器,不想用docker的情况下,想要比较靠谱的情况下可以使用云端调试。

如果想在本地调试,开发更加亲密一些,可以使用命令行工具或者VSCode插件。

如果不想安装各种工具,完全可以使用最后这种方法进行调试。

云端调试虽然说不太符合我们的开发习惯,但是这种开发方法真的可以百分之百模拟现场;第2种和第3种方法虽然可能通过docker镜像方法,已经尽可能的模仿了线上环境,但是对于一些线上资源交货的场景,尤其是通过VPC等和其他资源进行交货的场景,这种方法未必可以很好的解决类似的问题;针对最后一种方法,只可以说临时用一下还好,它的环境真的可能和线上环境天差地别,那么,很可能会对我们真正上线的时候造成一定的影响。

 

三、函数部署

部署部分很容易,方法也很简单,也不需要特殊的依赖,就算没有docker等这些依赖,也都是完全可以的。

第一种方法:在创建函数或者更新函数的时候上传代码包等;

第二种方法:如左图所示,通过命令行工具执行来进行部署;

第三种方法:通过VSCODE插件,点击上传按钮,即可进行部署;

在线部署:编写代码保存,上传代码。

客户端部署:通过VSCODE插件,通过命令行工具

image.png

 

格外强调

命令行工具的/H指令真的非常方便,无论在任何时候都可以使用/H指令来查看当前功能下的一些使用方法。

相关实践学习
【AI破次元壁合照】少年白马醉春风,函数计算一键部署AI绘画平台
本次实验基于阿里云函数计算产品能力开发AI绘画平台,可让您实现“破次元壁”与角色合照,为角色换背景效果,用AI绘图技术绘出属于自己的少年江湖。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
机器学习/深度学习 虚拟化
|
JavaScript
VUE学习二:事件监听(v-on)、条件判断(v-if/v-else-if/v-else)、循环遍历(v-for)
这篇文章是关于Vue.js的学习指南,涵盖了事件监听、条件判断、循环遍历、数组方法响应性、案例分析以及高阶函数的使用。
196 2
VUE学习二:事件监听(v-on)、条件判断(v-if/v-else-if/v-else)、循环遍历(v-for)
|
网络协议 API
检测指定TCP端口开放状态免费API接口教程
该API用于检测目标主机指定TCP端口是否开放,适用于检测连通状态等场景。支持指定大陆、美国、香港等检测节点。请求地址为 `https://cn.apihz.cn/api/wangzhan/port.php`,支持POST和GET请求方式。请求参数包括 `id`、`key`、`type`、`host` 和 `port`。返回参数包含检测结果和状态码。示例请求:`https://cn.apihz.cn/api/wangzhan/port.php?id=88888888&key=88888888&type=1&host=49.234.56.78&port=80`。
|
算法
【图像】图像增强-降噪锐化
【图像】图像增强-降噪锐化
159 1
2023年电赛---运动目标控制与自动追踪系统(E题)OpenART mini的代码移植到OpenMV
2023年电赛---运动目标控制与自动追踪系统(E题)OpenART mini的代码移植到OpenMV
408 0
|
敏捷开发 数据可视化 BI
工作流管理是什么?5款企业工作流管理工具推荐!
工作流管理是一种使处理过程自动化、协调人和应用工具完成工作的技术。它通过规划、组织、协调和控制业务流程,确保工作高效、准确地完成。工作流管理可以提高工作效率、规范业务流程、增强协同工作能力、优化决策支持,并提升企业竞争力。本文介绍了5款工作流管理软件:板栗看板、Trello、Asana、Jira 和 Monday.com,它们各具特色,适用于不同的场景和需求。
工作流管理是什么?5款企业工作流管理工具推荐!
|
JavaScript 前端开发 API
【前端开发】JS同步与异步调用,Vue2基础知识
本文简要介绍了JavaScript中的同步与异步调用以及Vue2的基础知识。 ### JS同步与异步调用 - **同步调用**:代码按顺序执行,每个任务完成后才执行下一个。 - **异步调用**:允许代码并发执行,不必等待前一个任务完成。 - **回调函数**:传统异步模式,如`setTimeout`。 - **Promise**:解决回调地狱问题,链式调用 `.then()`。 - **async/await**:基于Promise,使异步代码看起来像同步代码。 ### Vue2基础知识 - **核心概念**:指令、实例、组件、模板、数据绑定和生命周期钩子。 - **指令**
584 5
|
传感器 监控 安全
【全3D打印坦克——基于Arduino履带式机器人】
【全3D打印坦克——基于Arduino履带式机器人】
783 1
|
人工智能 文字识别 自然语言处理
深入探索OCR技术:前沿算法与工业级部署方案揭秘
深入探索OCR技术:前沿算法与工业级部署方案揭秘
深入探索OCR技术:前沿算法与工业级部署方案揭秘
|
存储 安全 调度
DPDK环形缓冲区(Ring)详解及性能优化
DPDK环形缓冲区(Ring)详解及性能优化