开发者学堂课程【阿里云 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