ChatOps 在阿里云上的实战应用 | 学习笔记

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
对象存储 OSS,恶意文件检测 1000次 1年
简介: 快速学习 ChatOps 在阿里云上的实战应用

开发者学堂课程【阿里云 ChatOps 实战:ChatOps 在阿里云上的实战应用】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/536/detail/7282


ChatOps 在阿里云上的实战应用


内容介绍:

一、Nodesdk

二、Bucket

三、hubot-script-shellcmd


一、Nodesdk

机器人对接阿里云则需要安装 Nodesdk,而目前可以直接使用阿里 sdk,这里提供了非常多的 sdk,这里会通过 oss去演示对接。

首先安装 sdk,安装后使用 code 打开进行配置,此时先测试 sdk,如果想要正常运行 sdk 还需要另一个包 co,co 可以帮助运行 oss 的代码,使用 npm install co --save 将其安装到本地。

首先安装 sdk,安装后使用 code 打开进行配置,此时先测试 sdk,如果想要正常运行 sdk 还需要另一个包 co,co 可以帮助运行 oss 的代码,使用 npm install co --save 将其安装到本地。

安装完成后,开始写测试代码,首先创建 oss.js 文件,引入初始化内容,输入var OSS = require(’ali-oss’);,再输入var co = require(’co’);,完成进行初始化 co 客户端,输入var client = new OSS({ ,再将参数直接复制过来,如accessKeyId: ‘your access key‘,accessKeySecret: ‘your access secret‘,bucket: ’ fstorage‘,region:’oss-cn-hangzhou’accessKeyId 和 accessKeySecret 需要根据账号 id 来添加的,可以在阿里云后台找到,在后台中找到 accesskey,会提醒使用用户授权,可以使用子用户的 accesskey 或直接使用 accesskey,将其复制进行粘贴这样就完成了初始化。


二、Bucket

通过函数去列举所有的 Bucket,Bucket 是通过 List bucket 函数来实现的。

首先使用co(function* (){,然后跟上var result = yield client.listBuckets();,再跟上console.log(result);将结果进行输出。也可以使用catch(function(err){,再跟上console.error(err);,执行命令,此时执行测试函数,输出流 ace-test、fstorage、icaci2018、ipdesign、yunxueyuan 等等 bucket 名称,说明此时正常地与 oss 进行了沟通,可以提取其中的值。

传回对象只要其 buckets 再进行执行,会得到一组数组,数组里是 buckets 的具体信息,可以使用这些信息设定返回的输出。

创建一个新的 aliyun.js 脚本,然后打开 chat.js,复制代码并删除其中多余的代码,再复制之前的测试代码粘贴,并将 clean the house 改为 buckets,当改为 buckets 时,则会获取 buckets 信息,然后再将 console.log 改为msg.reply,则完成了 hubot、bearychat 以及 oss 的联动。

重新执行 bearychat,复制 buckets 返回 object。然而 object 是无法查看的,通过输入代码JSON.stringify.(result.buckets)};,对其字符串化,再进行执行来实现查看 buckets 的具体的文本内容。

可以通过 for 循环对输出结果输出为一段文字去实现具体的展示内容。通过输入var text =“您当前有”+ result.buckets.length + “个 Bucket“;定义 text,然后直接使用msg.reply(text);,直接输出 text,进行重新启动,添加\r\n 可以实现换行。

bucket 的数组是 result.buckets,可以对其实行 forEach,则输入result.buckets.forEach(bucket => {,再跟上text = text + ”名称:”+ bucket.name +“区域:“ +  bucket.region + “类型”+ bucket.StorageClass +“\r\n”然后退出重新执行进行输出内容。

如输入var regionArrey= [“oss-cn-hangzhou”] =“杭州区域“定义数组,用来存储信息,再进行启动。而在真正使用的时候要定义全部。


三、hubot-script-shellcmd

Hubot 机器人是部署在某个服务器上的,通过一些插件可以实现在服务器上实现一些脚本,这个插件为 hubot-script-shellcmd。

首先要进行安装插件,然后复制 cmd 即对应的命令,可以将插件名称添加到配置文件中,再重新启动。

重新输入 help 会多出 shellcmd 命令,执行 shellcmd,可以执行 helloworld 和 update 两条命令,再执行shellcmd helloworld,则会得到 Hello。而 handlers 里的 helloworld 则执行了 bash 脚本会输出 Hello,再输出Sleepy World!

执行 hubot 机器人,添加 update 则可以在机器人的上一级目录中自动拉取更新,这样就可以执行机器人命令,重启机器人,

如下:#!/bin/bashSELF_PATH=”$( dirname”$(readlink -f “$0”)”)“cd $SELF_PATH/../..git pull origin master 2>&1echo “to reload all scripts run: <yourbotname>die”exit 0

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
5月前
|
消息中间件 Java
ThreadLoop实践学习笔记
这篇文档分析了两种类型的线程循环(ThreadLoop):基础TaskLoop和面向Event的实现。基础TaskLoop处理回调函数包裹的任务,支持异步处理、定时和重复任务,适合简单工作线程。面向Event的ThreadLoop增加了对文件描述符的监听,如Socket和Timer,适用于事件驱动的场景,如muduo的Channel。进阶TaskLoop包括MsgQueue,用于异步消息处理,通过队列和事件触发;Timer则利用Timer Fd创建定时器任务。最后提到了ThreadLoopMng,一个线程池管理器,负责多个ThreadLoop的生命周期和任务分配。文档提供了相关代码示例链接。
|
6月前
|
编译器 C语言 C++
【C++】学习笔记——C++入门_2
【C++】学习笔记——C++入门_2
40 6
|
6月前
|
程序员 编译器 C语言
【C++】学习笔记——C++入门_1
【C++】学习笔记——C++入门_1
44 4
|
6月前
|
安全 编译器 C语言
【C++】学习笔记——C++入门_3
【C++】学习笔记——C++入门_3
36 4
|
自然语言处理 编译器 Linux
C++学习笔记(一)——入门基础(一)
C++学习笔记(一)——入门基础
C++学习笔记(一)——入门基础(一)
|
存储 安全 编译器
C++学习笔记(一)——入门基础(二)
C++学习笔记(一)——入门基础
C++学习笔记(一)——入门基础(二)
|
SQL 弹性计算 关系型数据库
|
存储 SQL 运维
|
移动开发 Android开发 开发者
最佳场景和实践|学习笔记
快速学习最佳场景和实践
135 0
最佳场景和实践|学习笔记
|
开发者 索引