00:00
好了,李辉咱们回来了,好多小伙伴恨得牙根痒痒哈,我正要知道你这个思维类似啊,怎么来创建一个函数啊,这就给我掐断了哈,来到这一节了,你看啊,没关系是吧,咱们这是故意安排的,你看看是不是勾着你非得往上去看一下。好,接下来咱们来看一下咱们第三集啊,就是我们打通我们的小程序啊,到我们这个4Y类似的这种开发,也就是我们要创建一个云函数,通过小程序来调用这个云函数给咱们返回这个结果,也就是我们先给大家可以画一张简单的一张结构图啊,这张结构图是这样的哈,你可以想一想,以前咱们做开发的时候不都是这样吗?我们在这里自己创建一个,咱们以咱们前端来说,创建一台什么node服务器,咱们写好了接口,咱们是这样的哈,前端啊,自己创建node服务器啊,自己写好接口之后,然后前端了自己的前端页面或。
01:01
或者是小程序,咱们给予小程序吧,小程序在这里呀,他就可以直接来进行访问了啊,因为小程序也没有什么跨域限制,虽然有个安全域名呀,但也配置一下就能搞定,咱们可以啊,直接通过小程序发请求啊,我们的note服务器的接口返回东西就可以了,那我现在要说的是呢,我们直接就要把这个接口这套东西啊,大家以为红星函数干嘛呀,你不会打算在语端来做一个复利叶变换,还是做一个兔子序列的转换呢?没有意义,咱们是把这种接口这种东西啊列外,把这种接口种东西啊,直接给它扔到咱们的哪个地方来,扔到我们的云开发中,也就这样的话呢,我们的腾讯云,哎,这个腾讯云我们的server类似人家里面已经构建好了,咱们选中的就是node这个环境,所以咱们只需要把那一段接口代码,哎,就这一部分接口代码呀,咱们给它拿过来就完。
02:01
完事了,这样的话,他在这个node GS的这个serve的环境下运行起来,我们将来小程据从这里来请求数据给到咱们的小程序,所以说这才是云函数的有价值的一个地方,咱们要做的就是利用我的小程序能成功的发出一个请求,在腾讯云部署好云函数,有部署好这个云端的这个接口之后,哎,咱们直接把数据扔回来小程序,你看这条通路你要打通了之后,哎,将来的话,我们在做我们的项目的时候,是不是就很方便了句话,诶首先要把这条路咱们给走通好,接下来在创建这个云函数的时候呢,你列位可以按照官方文档来创建,就官方文档这块呀,创建函数点击这块有一个链接啊,他会给你一步一步的怎么去创建函数这块,还有一个很有意思的在线充值,他怕你不够用啊,啊教你。
03:01
怎么去买这些流量对吧?哎,怎么去付费的,所以这是官方文档,诶你一看Q文视频啊,Q肯定要从零开始,所以Q就当大家什么都不知道啊,我们一起来看看怎么来创建一个云函数啊,在具体的创建中课上给大家介绍一些很有用的一些知识点,好,来到我们的控制台点击新建,新建这里呀,来。这块有一个模板创建,我也奉劝列位啊,刚开始学的时候不要基于模板创建,因为你现在这个需求,他也不是这种什么解压缩需求样,它也不是什么啊定时任务表,Word price对吧,这个KV框架啊,知道弄的人知道说,哎,我要做基于not的框架来开发,这个其实可以啊,怎么现在咱们还不需要啊,咱们在这里直接通过最简单的什么呀,从头开始,从一个hello word开始,这样你会知道啊,整个的这个完整的流程,它在这里有两个非常重要的一个选项,这是B选项,带星号的嘛,说有一个事件函数,也就说你要创建是一个事件函数还是一个web函数啊,事件函数的话,它能接受云API,还有多种触发器的Jason格式的事件触发函数执行啊,这个的话呢,是直接接受HTTP请求的来执行啊,适用于web场景,我相信经过客户这么一解释之后呢,大家就彻底的糊涂了。
04:26
啊,很多人都冒摸呀,说这啥意思呀啊,我从官方文档中啊,找了这样一句话,因为这些东西啊,你要去网上搜啊,你搜不到的,科们之前也搜过,因为这些东西咱们都是基于腾讯的官方文档来学习的呀,啊官方文档的话呢,是这样说的哈,就我们web函数和事件函数的区别,我们的web函数作为一种全新的函数类型,打破现有事件函数对于JA事件格式的限制,由HDP直接触发请求,使用场景要更加灵活,贴近原生web开发服务体验,也就是它在这里所说的web函数的话呢,应该是比我们的试件函数要新,我们曾经的事件函数啊,它必须传输的是son格式啊,后端的话呢,返回的是严格的Json格式这样一些需求,所以你创建云函数可以,其实啊,你创建这个web函数的话,那更好,更加适用于咱们这种web请求,Web响应的场景啊,你要是还不明白。
05:26
什么意思的话,跟着科们一起来,我两个都给你创建一遍,那最终你自己选择一个你喜欢的就行了啊,所以我们这个视频啊,你在全网都找不到啊,因为只有我们千锋推出了这样一个跟腾讯产品啊相关联的视频啊,所以每一步咱们都会给大家走一遍的啊,咱们来选择事件函数这里。函数名字你列为自己起一个吧,Get我们一个user,哎,就是我自己起的一个get user这样一个名字,我们的地域选择肯定就是刚才的北京哈,运行环境这里啊,这个东西啊,我跟你说啊,这就是坑人,不趟一边路,哎不行走过这边坑呀,你自己选择的时候呢,啊就很容易掉进去,你看这里他给推荐的版本,Python呀,Noe都是最新版的,挺好啊,包括什么Java基DK对吧,最新版的啊好了,但其实你会发现,如果我们现在选的肯定是noe,对吧,如果选的是最新版的node GS的话啊,其实我是无法来使用我们的最新编辑器的功能,如果没法使用最新编辑器的功能,就无法在线依赖安装,哎,就这样一些痛点啊,你看看我给你选你就明白了,一会儿咱们可以删了再创建所这一块的话呢,不怕列位浪费时间,就得自己亲自走过一遍,印象才深刻,坑在这里选择的。
06:50
事件函数之后啊,我们选择的最新的,按照他推荐的最新版的这个哈,16:13来做的,那接下来看Q哈,咱们在这里就在线编辑吧啊,在线编辑就是直接在这写代码,你写完代码之后直接部署就行的,你一会儿还可以本地上传,我都会给你演示的,所以你看一下啊,我们在这里选了多少有分支的地方,那我们的这个地方,我现在选的时件函数这个地方,我故意选的最新版的,诶我们现在选的是在线编辑的,OK,这是咱们的默认创建了hello word代码,你着急编辑啊也可以,你不着急的话就往下走就行了,不用管它,不用看了,往走就行了啊,这一块的话,高级配置你都不用打开啊,触发器配置也不用管它,直接点击完成,因为我们很着急去看看我们这个函数到底现在是什么样子的,我们的函数创建完成四秒,三秒,两秒,一秒跳到我们的函数配置页去了。好了,另外来到我们的。
07:50
函数管理这个页面你也可以先退一下,你会发现此时在这里啊,有一个get user这一个唯一的北京test的下面这个函数了啊,它现在好像是正常工作状态,点开get user色之后打开这里,另外这一块是咱们函数代码的地方,你可以看到此时我们整个云函数中就一个引ex.GS这个main handler是什么意思呢?就一会儿如果有人来调到我这个接口的话呢,我们这个函数就会自动被执行,而且在这个回调函数中有一个就是前端你盖或者post传过来了这种son数据,哎,在这里会一会儿给咱们传过来,你拿到之后呀,他这就打印了一下啊,最后的话呢,又通了一下而已,你看就是这么简单的一个函数啊,写完了之后,那接下来有人说科,那咱们不得给它部署一下嘛,对吧,你这样没。
08:50
咋用啊,我先给你部署一下,你看一下。这块部署之后,他说已经保存到了云端,现在正在转圈圈,转圈圈就说明已经开始部署了啊,部署了之后你看这个界面就特别剪辑啊,就让我也不知道现在到了哪一步,反正不转圈就完事了啊,没办法,这就是咱们最新版的NODE13,选完了之后他居然不支持咱们最新版的编辑器啊,这就很尴尬啊,所以你一会儿只能选那个老版的EGS,它才能支持新版编辑器啊,没关系,也不妨碍我们做是吧测试,你看这一块左边的话呢,咱们刚才不说了吗?将来哈,只要有人发请求的话呢,这个一问他是什么呀,是前端给传过来的东西啊,咱们现在可以自己在这做个测试,就我现在假装就是前端给他传了一个Jason格式的数据,哎,你回头看一下,测试完之后就相当于模拟了一次请求发出,你看一下最终这个数据是不是返回呢?点击测试之后你看看。
09:53
直接返回机果就是这个数据,另外为什么是这个数据,因为咱们在这里把前端传过来的event啊,在打印的hello wordlo,打印了这个这个最后打印了contact上下文执行对象,最后我们通了,就是这块没处理,直接给他回来,所最终的话呢,返回来还是这个值,你要给它改成什么name,哎,咱们给它写成一个科文的这样一条测试数据啊,你再重新测试一遍,是不是返回来就是我们对应的name k2 test的VALUE2这样一个数据,这说明啊,你这次测试啊就很成功了,你也能看到下面这块有一个什么呀,我们的打印的这个测试的日志,你看从这个hello word到我们接收到前端的这个数据,还有一个打印出来onde,还有咱们这个context上下文对象啊,咱们在这里不去用它,对吧,跟腾讯相关的上下文对象啊,最后这个是结束了,这是它的一个执行的一个。
10:53
日志你也可以在这里来查看,这一个日志就是我们刚才调用的两次日志都是成功的日志啊,所以刚才只不过是咱们的一次什么呀,我们的一个模拟,也就是科润基于选中的最新版的弄的16啊,虽然此时编辑器是老的啊,但最终我们这个测试是没问题的啊,你也可以在这里改修改代码,你可以在这得到这个内幕坑之后,你重新给他通了这个什么OK,冒号一啊,这样的话,只要你一保存,保存QTLN的CTRL加S,就相当于你在用一个本地的Vs code的一样啊,保存完了之后重新再部署一遍,又在转圈,反正一会儿不转完就说明我们已经更新成功了,在这里对吧?诶,正常了,正常之后你在测试是吧,这块是没有问题的,但现在这种测试也好啊,这种请求传输也好,都是在自己在玩的,那将来我希望我现在不要求Q,你那么要求啊,我不要在。
11:53
小生,这种测试你现在让我在一个地域之中,哎,能够去测一下,那我这个也也满意了,对吧?啊,咱们可以在地域之中来进行测试一遍好不好啊,那你要想说在外网的地址中能够访问到你刚刚啊创建的这样一个啥也没有用的这样一个云函数,怎么办呢?要打开这个触发管理这里,咱们在这里要创建一个触发器,点击这个触发器。
12:21
触发器这里啊,列外选择的是什么呢?我们选择要选择这种epi啊,我们的接口们大家都知道选择a epi网关,前面这个默认流量默认啊,API网关必须选API网关,因为咱们做的是给web,给HTTP协议,DPS协议用的这种API,所以用API网关触发,我们在这里选择一个新建API服务,你得自己去写一个,你也可以直接使用现有的这个API服务,这两个的话呢,都是可以的,咱们可以在这里选择一个已经有的,就说明人家默认给你创建的一些四类似的这样一些服务啊,你可以选择一个,比如咱们就选择第一个吧,好吧,然后请求方法就什么方法都能响应啊,你将来写了函数,你可能只想用poose的,你自己选呀,你别在这块说你将来都随便嘛,那现在咱们这个请求不就随便嘛,啊咱们一个测试而已好了,环境发布也好,测试预发布啊,几个环境啊选择一下。
13:21
不用健全啊,健全的话呢,你需要再验证它的这个密钥啊,比较麻烦,咱们现在默认选择不健全这一块一定要取消勾选,官网在这里可强调了哈,这个要取消勾选,为什么呀,不取消勾选的话呢,就一定要保证你这个返回的这个数据,它一定是这种格式的,什么格式呢?得是这种格式的。你看科现在返回的这种格式是什么格式呀,咱们在代码中啊,我这块一会儿去看,好像返回了一个OK冒号一这样一个对象,如果你勾选上集成响应这种格式的话呢,诶你还返回一个OK1,你就会报一个什么错误呀,说什么403这样一个错误啊,什么不符合咱们这个云函数的response响应格式啊,他说这不是返回给前端的吗?诶他会管你的,所以你要保证如果选的集成响应,就要把你真实的数据放在这着,就把这个大象给它回给我们的A网,哎呀这就是很麻烦的了,所以在这咱们压根就先不勾选这个启用集成响应就好了,那点击提交,那咱们来看一下此时我们这个效果啊是怎么样子的啊,等它创建完之后,列位可以看到在最下面,哎呦生成的一个地址,你赶紧的点一下这个地址来去看一下,咱们就在这点击之后大家会发现。
14:44
这个地址直接就给我返回了我们的OK1,那这样的话呢,刚才这次是通过HTDP请求的,所以你也可以来到这里,诶可能点错了哈,点到这里之后,你也可以再看一下这个日志查询,你可以看一下我们刚才的请求有没有被我们给记录下来,因为咱们在做本地开发的时候,咱们经常的去诶做这种找这个打印的log,你看刚才这次的话,你就可以在这能看得到,因为咱们这不是本地开发,你只能在这里面查询到咱们刚才这个请求,看见了吗?在这里hello word,那咱们这个请求的时候呢,大家会发现,因为它是HTP的,它会带上很多的请求头信息,这也是一个严格的G格式呀,所以只要是严格GS格式就没有问题,你看啊,虽然我们没有给他post或者get传过去数据,但传过去的一个严格的G对象过去它也啊没有问题,最后给咱们也响应了我们的这个数据,OK。
15:44
A1啊,Response message ok1正常响应了,所以这次接口调用是成功的啊,如果啊,你在自己测的时候哈,你看自己测的时候,咱们可以这样去测,咱们就故意的给它弄成这种非真的格式的,那一会儿你一会儿你会说说这是跟咱们事件函数跟咱们这种外部函数的区别嘛,在这里啊,事件函数外部函数区别,你事件函数这种的话,就必须是计算格式的,你看你只要不是这次格式,你测试什么效果,它失败了,说你这个参数错误了,就必须是,所以一会你看看web的是不是这样的一个要求啊啊,而咱们的这种HTP的,他们本来就是会把咱们的浏览器的一些请求对象传过去,所以本来就是一种严格的存格式的,所以这块是没有问题的。
16:34
好了,竟然能在我们的地址中这样访问,成功之后,哎呀哥们,我好想测一测在我们小程序中能不能行呀,那你说在这如果都能行的话,那小程序的这个测试是不是也没有问题了呀?来,在咱们的小程序端这里,咱们可以在这个demo.wxm中咱们写一个小按钮button,然后我们在这里test我们这个什么呀,Server list,哎,啊,这个serve类的名字叫get user,行吧,在这里啊,起了这样一个小按钮,这个小按钮咱们给它绑定一个事件棒的TPI,哎,你可不能说可啊,我这个小程序的视点绑定我还不会,我能不能学弄这个课程呀,你还不如去搜一搜啊,咱们千锋小程序的这个视频啊,那也是current录啊,可以搜索咱们的基础视频。好,在这里咱们把这个函数啊给它创建好了,咱们利用咱们小程序的原生的request答案,现在我不封装。
17:34
啊,将来项目中再封装一下啊,好把它这个地址给它复制过来,在咱们这里面传上这个地址,然后另外等你要不要传过去一块测试一下,比如说我们传过去name冒号科age冒号100,到时候你在那个叫远程的控制台中能不能接收到这个信息呢?哎,然后在我们的success回调函数中,好,咱们在这里来打印我们的这个最终的这个结果,来res来吧,列位咱们来测试一下啊,这个时候可能只需要点击一下按钮之后,诶,我成功的报错了啊,当然这个错误的话呢,就是咱们意想知道的,因为这个地址的话呢,咱们小程序是不认识的啊,他会认为这个地址呀,并不在我们的合法域名列表中啊,所以说接下来两个方案,要不然你现在就把这个地址加到你的小程序后台系统中的安全。
18:34
域名那边中没必要吧,这个地址也不是咱们最终的生产地址,咱们将来也不一定能用它呢,所以你现在就加太太着急了,咱们在这儿可以什么呀,先提前什么勾选测试嘛,咱们可以在这里的话给他勾上,这个不叫验合法域名,咱们做本地测试五行嘛,啊所以这样的话,一点完之后,大家可以看一下,我们成功的返回了我们的data,因为我们将来这个数据它是藏在咱们的res.data中的,这才是咱们从后端返回的真实的数据,OK1你看这个成功的请求就发出去的啊,在这里的我们这个传过去的参数的话,因为默认是get的嘛,诶也成功的传给了我们的后端啊,对应的我们在这里也得到了响应,那这个时候啊,你也看一看,咱们直接在咱们这个日志查询中,咱们重新刷新一下,看看有没有得到咱们刚才的这次调用结果呀,咱们刚才连点了两下嘛,你看一下。
19:34
我在这里怎么能拿到相关的一些信息的列位,看看我们在这里,将来在RQ.query string中能拿到前端传过来的这个get参数啊,你看这拿到了吗?啊,所以我们我们打印,我们在这打印出来这个对象,咱们打印的是这个event啊,是这里,你到时候even点我们这个query stream不就好了吗?哎,到时候拿到前端给你传过来的这个值的,你看看前端能把值传给我们的云函数,咱们的云函数的话,也能够正常的给它响应这个数据,所以列外这就是一个最最呀简单的一个server list。云函数的创建说是简单,但前提是大家得理解云函数的作用,就是我们在不需要自己搭建服务器啊,不需要自己去部署服务器环境的情况下,咱们把一段代码,当然对于咱们来说最熟悉的node代码扔到这个。
20:34
这个云产品上,然后直接进行部署,部署完之后你可以弄一个触发器,这样的话呢,我们就可以在呃浏览器端触发成功,我们在小程序端也可以请求成功,前端传过来信息都在event里面,呃,Event点快于string event.body啊,我们的get和post的一些值啊,返回就是看你这个函数最后re return回来的一个结果就可以了。好了,这是咱们最简单的一个调用,那如果是我们在开发中,我们需要依赖一些外部的一些包,一些模块,那我们在这种开发环境下,我们该怎么去做呢?因为谁也不可能就写这么一个简单的代码,那我要下载一个,在咱们的node环境下,我要下载一个MD5,对吧,我要下载一个request的模块等等呢,下载一些模块在这个云函数中,那怎么能让它工作起来呢?咱们在下一小节中。
21:34
哥们一起来看一下。
我来说两句