基于 OpenWhisk 实时监测静态网页是否有乱码(1)
- UID
- 1066743
|
基于 OpenWhisk 实时监测静态网页是否有乱码(1)
IBM OpenWhisk是一种开源的微服务计算平台,它执行应用程序逻辑来响应事件,或通过直接调用来执行某项特定的任务。本文通过一个实例,来讲述如何应用IBM OpenWhisk封装好的服务,和如何在OpenWhisk使用第三方服务,以及如何自定义OpenWhisk服务来提供一套DevOps的静态网站乱码检测解决方案。
OpenWhisk简要概述首先介绍OpenWhisk 采用了什么机制,以及为我们提供什么服务:
- OpenWhisk采用Action,Trigger 和 Rule 的基于事件的编程模型,使我们可以将主要精力集中在业务逻辑的开发上,而不是运行时的软硬件环境的部署和运维上;
- 可以将Bluemix上的Service、开源,以及第三方Service打成标准的Catalog包,以在 OpenWhisk 上使用;
- 细粒度的计费方式,以及透明的自动伸缩,使我们只为需要的资源付费,我们不需要为业务无关的资源买单;
- OpenWhisk 提供的iOS SDK和Starter应用程序,以及服务端支持 Swift 语言,使我们可以写出非常酷的Mobile应用。
其中OpenWhisk包括Action,Trigger,Rule,Sequence 以及Action Runtime 几个部件,下面对这几个部件进行简要说明:
Actions(行为)Action就是您需要执行的一个特定任务,比如:本文实例中的Garbage Char Detection就是一个Action,发送检测结果到Slack也是一个Action;可以采用您比较擅长的编程语言来编写Action; 你可以通过在Action代码里调用REST API来完成一项特定的任务,比如该实例调用的前面介绍Garbage Char Detect REST API,和Slack的Post Text API;Action也可以自动响应由Bluemix 或第三方服务的触发器触发的事件,比如Garbage Detect行为和发送扫描结果到Slack行为就是响应GitHub push事件。
Trigger(触发器)和Rule(规则)Trigger是响应一个特定的事件的申明;Trigger既可以人为触发,也可以接受到某个特定事件被自动触发。Rule则是将一个Trigger与具体的Action进行关联,当一个Trigger被特定的事件触发时,与该触发器关联的Action就会执行。
Sequence(序列)所谓Sequence就是一个有序的Action序列,Action序列中,前一个Action的输出,会作为后一个Action的输入;本文讲解实例中的Garbage Char Detection Action和发送扫描结果到Slack Action就是通过Sequence串联起来的;Sequence 可以像单个的Action那样被调用。
Runtimes(运行时环境)Runtimes即行为的运行时环境,目前支持的有Node.js,Python和Swift3。当然,您也可以采用其他的编程语言,不过需要将你的Action代码放到Docker容器上运行;您可以采用 Bluemix OpenWhisk 提供了基于Web接口的IDE来开发和执行Whisk程序,也可以选择你喜欢的IDE,然后通过OpenWhisk CLI将代码上传到Whisk上执行。
OpenWhisk应用场景本文介绍的第一个应用场景是,OpenWhisk通过调用Bluemix上的天气预报服务去收集气象数据,然后通过Filter Action抽取出感兴趣的数据,再通过Waston MT Translation服务将天气情况翻译成指定语言,发送到对应的终端。其流程图如图1:
图1:OpenWhisk天气预报第二个应用场景是,用户通过上传图片到社交APP,图片的路径保存在Cloudant DB,Cloudant DB检测到有更新,会触发Waston的AlchemyAPI Action,对图片进行分析,并自动添加响应的tag。其流程图如图2:
图2:OpenWhisk给图片自动添加tag第三个应用场景是,OpenWhisk上的GitHub WebHook触发器去接收GitHub特定repository中的特定事件,然后对事件返回的Payload数据进行分析过滤,翻译并且post结果到Slack。其流程图如图3:
图3:Git2Slack |
|
|
|
|
|