阿里云七天云开发校园合伙人创造营 Day 3

2024-02-03 18:59

本文主要是介绍阿里云七天云开发校园合伙人创造营 Day 3,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

云开发7天训练营学习计划

在这里插入图片描述

阿里云云开发平台校园合伙人招募 主要提供了 云开发平台 进行 Web 开发的体验,包括以下内容:

  • 认识 Serverless 云开发 (8.3) :学习云开发平台的基本概念和操作、团队协同、应用的开发、部署

  • 云函数 (8.4) :函数的基础概念,架构,调用方式、静态文件的托管方式

  • 开发Web接口 (8.5):学习使用函数开发 Web 接口、多个函数的同时开发,资源复用

  • 服务端渲染 (8.6):学习使用函数接入传统 koa 中间件,构建 Web 应用

  • 数据库调用 (8.7):学习接入数据库,调用数据存储

  • 多媒体托管和支付 (8.10):学习函数的文件多媒体托管和支持能力

  • 一体化方案开发实战 (8.11):学习和前端 ( react / vue ) 代码一起开发的一体化方案

完结撒花 🎉 ,点击上面的链接可以回顾这七天的内容哦~

Day 3: 使用 Midway Serverless 开发函数接口

关于 Midway Serverless 的相关介绍,请参考 Day2 的文章

每日任务

今日任务为使用 Midway Serverless 创建一个函数,通过浏览器访问函数接口,返回 Midway Serverless 加上名字

在这里插入图片描述

1. 登入云开发平台创建应用

登入云开发平台,进入到应用列表,点击 创建新应用,新建一个 WEB 场景的 Midway Serverless 一体化解决方案 (For NodeJS10)

创建好后,进入 开发部署

在这里插入图片描述

2. 开发调试

进入 IDE 后,先在终端执行:

npm i --registry=https://registry.npm.taobao.org

安装 npm 依赖,因为依赖包很多,这里用了淘宝的镜像源,安装会更快。

此时我们需要自定义这个函数,打开函数文件 index.ts,位置在 src/apis/config/index.ts

在这里插入图片描述

修改代码:

import { Provide, Func } from '@midwayjs/decorator'
@Provide()
export class IndexService {@Func('index.handler')async handler() {return {message: 'Hello Midway Serverless MicroLOONG', //修改这里}}
}

同时我们可以看到项目目录中有很多 tsx 文件,说明这是一个 Midway Serverless 和 React 一体化的项目

可以尝试执行 npm run dev 运行项目。

在这里插入图片描述

启动时会自动发一个请求到函数端拿数据,渲染到页面。点开上图所示的链接即可访问到该页面,在本地运行的话需要访问 locathost:3000

在这里插入图片描述

按 F12 打开开发者人员工具,点进网络,也可查看到 index 这个函数及其返回的内容。

本示例也是一个 Midway Serverless 项目,可以参考 Day2 的文章,使用 Midway 函数开发命令行工具,执行 f invoke -f index 调用该函数

任务拓展

创建一个会复读的钉钉群自定义机器人。

首先在钉钉开放平台登录开发者后台,按提示创建企业。

进入 应用开发,创建机器人。

在这里插入图片描述

进入机器人的管理页面,点击 版本管理与发布,用手机钉钉扫描 调试 的二维码进调试群,并上线机器人。

在这里插入图片描述

使用 PC 版钉钉进入群,在右上角 群设置,进入 智能群助手 可以看到刚刚创建的机器人。

其实可以直接在现有的任何群创建机器人,部分群需要成为群主或管理员才能添加机器人,不过这种方式不能实现 @机器人 触发回话

在机器人设置里,开启消息推送,复制 Webhook 备用,在下方 安全设置 中需要设置其中一项,比如设置自定义关键词,之后可以提供关键词触发机器人对话。

在这里插入图片描述
返回 IDE 修改函数文件 index.ts 代码:

import { Provide, Func, Inject } from '@midwayjs/decorator'
import axios from 'axios';  //导入axios包
@Provide()
export class IndexService {@Inject()                 //加入Inject注解ctx;                      //函数执行上下文@Func('index.handler')async handler() {return {message: 'Hello Midway Serverless MicroLOONG',}}@Func('ding.handler')     //增加ding函数async ding() {const hook = '';      //此处填写Webhookconst body = this.ctx.request.body;await axios.post(hook, {msgtype: 'markdown',markdown: {title: 'test',text: '复读:' + body.text.content, //引号内的内容可以为刚刚填写的关键词}});}  
}

由于增加多了一个 ding 函数,这里修改函数定义文件 f.ymlfunctions 下定义这个 ding 函数。

functions:ding:handler: ding.handlerevents:- apigw:path: /api/ding

执行 npm run dev 运行项目,点击链接,在链接后面加上 /api/ding 就能访问到该函数。

将完整带有 /api/ding 的链接复制到钉钉开放平台上,具体位置为机器人管理的 开发管理

这里的 服务器出口IP 可以到 IP 查询网站上获取该链接的 IP 地址。

在这里插入图片描述

至此,回到钉钉群发送 @机器人的名字 + 消息,可以看到机器人回话并返回发送的消息。

在这里插入图片描述
可能出现的问题:

  1. 终端可能会报错,不过不用理会(content 变量是发送消息的内容):
TypeError: Cannot read property 'content' of undefinedat IndexService.ding (/home/admin/workspace/codeup.aliyun.com/5f17df43d248146039337cf0/repo_2020-08-06_2020080600072285/.faas_debug_tmp/dist/index.js:30:41)at FaaSStarter.invokeHandler (/home/admin/workspace/codeup.aliyun.com/5f17df43d248146039337cf0/repo_2020-08-06_2020080600072285/node_modules/@midwayjs/faas/dist/starter.js:135:42)
  1. 如果机器人不回话,请检查钉钉开放平台-开发管理-消息接收地址有没有填错,版本管理与发布里的 调试和上线 有没有点击,检查函数文件 index.ts 的代码和 Webhook,确保机器人设置的底部已经生成了 POST 地址和 TOKEN。

在这里插入图片描述

  1. 保持项目运行,机器人才能一直在线,如有需要可以将项目部署到线上环境。

总结

钉钉群机器人之所以能回话,主要是函数和 Webhook 的作用。

在这里插入图片描述

Webhook 是一个 API 概念,类似触发器。当事件发生时,源网站可以发起一个 HTTP 请求到接口配置的 URL。配置之后,用户可以通过在一个站点触发事件,之后再调用另一个站点的行为。触发的事件可以是"push 代码到远程仓库",或者"post 一个评论到博客"等等。

利用 Webhook,还可以在钉钉群添加 GitHub 机器人,机器人可以发送代码提交、工单变更、Pull Request 和评论的通知。当然还有更多其它的用途。

对创造营后续内容感兴趣的朋友们记得 关注我 哦~

这篇关于阿里云七天云开发校园合伙人创造营 Day 3的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/675087

相关文章

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

基于Qt开发一个简单的OFD阅读器

《基于Qt开发一个简单的OFD阅读器》这篇文章主要为大家详细介绍了如何使用Qt框架开发一个功能强大且性能优异的OFD阅读器,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 目录摘要引言一、OFD文件格式解析二、文档结构解析三、页面渲染四、用户交互五、性能优化六、示例代码七、未来发展方向八、结论摘要

在 VSCode 中配置 C++ 开发环境的详细教程

《在VSCode中配置C++开发环境的详细教程》本文详细介绍了如何在VisualStudioCode(VSCode)中配置C++开发环境,包括安装必要的工具、配置编译器、设置调试环境等步骤,通... 目录如何在 VSCode 中配置 C++ 开发环境:详细教程1. 什么是 VSCode?2. 安装 VSCo

C#图表开发之Chart详解

《C#图表开发之Chart详解》C#中的Chart控件用于开发图表功能,具有Series和ChartArea两个重要属性,Series属性是SeriesCollection类型,包含多个Series对... 目录OverviChina编程ewSeries类总结OverviewC#中,开发图表功能的控件是Char

鸿蒙开发搭建flutter适配的开发环境

《鸿蒙开发搭建flutter适配的开发环境》文章详细介绍了在Windows系统上如何创建和运行鸿蒙Flutter项目,包括使用flutterdoctor检测环境、创建项目、编译HAP包以及在真机上运... 目录环境搭建创建运行项目打包项目总结环境搭建1.安装 DevEco Studio NEXT IDE

Python开发围棋游戏的实例代码(实现全部功能)

《Python开发围棋游戏的实例代码(实现全部功能)》围棋是一种古老而复杂的策略棋类游戏,起源于中国,已有超过2500年的历史,本文介绍了如何用Python开发一个简单的围棋游戏,实例代码涵盖了游戏的... 目录1. 围棋游戏概述1.1 游戏规则1.2 游戏设计思路2. 环境准备3. 创建棋盘3.1 棋盘类

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设