Serverless 框架 OpenWhisk 开发指南:使用 Node.js 编写 hello, world

原创 2017年12月18日 00:00:00

在上一篇文章《Serverless 框架 OpenWhisk 开发:hello, world》里,我们介绍了搭建 OpenWhisk 的环境。在这一篇文章里,我们将介绍:如何将上一节搭建的 OpenWhisk 服务作为服务器,并使用自己的 macOS 作为客户端。然后,在这之上运行我们的 Serverless 应用。

配置 OpenWhisk 客户端

获取 CLI

首先,我们需要在我们的电脑上安装 OpenWhisk 的 CLI,可以直接从 Bluemix 上下载二进制的包:https://openwhisk.ng.bluemix.net/cli/go/download/

然后将命令加到环境变量中:

  1. $ chmod +x ./wsk

  2. $ sudo mv wsk /usr/local/bin

为客户端获取密钥

接着,我们需要到我们的 vagrant 虚拟机,为客户端分配一下密钥。使用下面的命令登录:

  1. vagrant ssh

然后,获取密钥:

  1. $ wsk property get --auth

  2. whisk auth        23bc46b1-71f6-4ed5-8c54-816aa4f8c502:123zO3xZCLrMN6v2BKK1dXYFpXlPkccOFqm12CdAsMgRU4VrNZ9lyGVCGuMDGIwP

在客户端设置

先看一下命令:

  1. wsk property set --apihost http://192.168.33.13:10001 --namespace guest --auth 23bc46b1-71f6-4ed5-8c54-816aa4f8c502:123zO3xZCLrMN6v2BKK1dXYFpXlPkccOFqm12CdAsMgRU4VrNZ9lyGVCGuMDGIwP

正常情况下 apihost 应该是 192.168.33.13,并且没有 10001 端口。但是好像我的配置有问题,2333。

可以先试试使用能不能列出系统的包:

  1. $ wsk package list /whisk.system

  2. packages

  3. /whisk.system/github                                                   shared

  4. /whisk.system/combinators                                              shared

  5. /whisk.system/slack                                                    shared

  6. /whisk.system/watson-textToSpeech                                      shared

  7. /whisk.system/utils                                                    shared

  8. /whisk.system/watson-speechToText                                      shared

  9. /whisk.system/websocket                                                shared

  10. /whisk.system/weather                                                  shared

  11. /whisk.system/samples                                                  shared

  12. /whisk.system/watson-translator                                        shared

接着,就可以进入下一步了。使用 Node.js 创建一个 hello, world。

OpenWhisk Node.js Hello, world

1.创建我们的 hello.js

  1. function main() {

  2.   return {payload: 'Hello world'};

  3. }

2.创建操作

  1. $ wsk action create hello hello.js

  2. ok: created action hello

3.触发事件

  1. $ wsk action invoke hello

  2. ok: invoked /guest/hello with id a3ea5f68844248e9aa5f68844288e98d

4.查看返回结果

  1. wsk activation result a3ea5f68844248e9aa5f68844288e98d

就这么简单。

OpenWhisk Node.js 传递参数

接下来,让我们看一个参数的例子:

  1. function main(params) {

  2.  return {

  3.    payload:  'Hello, ' + params.name

  4.  };

  5. }

然后更新我们的操作:

  1. $ wsk action update hello hello.js

  2. ok: updated action hello

接着,就可以触发我们的操作:

  1. $  wsk action invoke --result hello --param name Phodal

  2. {

  3.    "payload": "Hello, Phodal"

  4. }

当然,它可以探索的地方仍然有很多。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Opendaylight 之 HelloWorld

万里长征第一步!!!! 最近因为导师的要求开始研究opendaylight!!!参考: http://www.cnblogs.com/FrankZhou2017/p/7236035.html 官...
  • JSJWR
  • JSJWR
  • 2017年11月27日 15:09
  • 94

使用 OpenWhisk 自建 Serverless 服务

在尝试了使用 AWS 开发 Serverless 应用之后,我便想尝试使用 OpenWhisk 框架来搭建自己的 Serverless 服务。Apache OpenWhisk(http://openw...
  • j01G58UC80251
  • j01G58UC80251
  • 2017年12月13日 00:00
  • 101

Node.js开发入门—HelloWorld再分析

详细分析基于http模块的HelloWorld,介绍代码结构和HTTP协议的相关知识。
  • foruok
  • foruok
  • 2015年08月05日 07:03
  • 7601

两种语言,一个平台——《iOS开发指南:从Hello World到App Store上架(第4版)》

一个人做厨师几年也做不出好吃的菜,再怎么培训也做不好iOS;一个人只要勤学苦练,学好iOS只要看一本《iOS开发指南:从Hello World到App Store上架(第4版)》就够了。...
  • dongfeng9ge
  • dongfeng9ge
  • 2016年09月05日 08:20
  • 2827

什么是Serverless无服务器架构?

Serverless不代表再也不需要服务器了,而是说:开发者再也不用过多考虑服务器的问题,计算资源作为服务而不是服务器的概念出现。Serverless是一种构建和管理基于微服务架构的完整流程,允许你在...
  • libing13810124573
  • libing13810124573
  • 2016年06月21日 11:50
  • 1497

在Bluemix 使用OpenWhisk & Node-red 開發Event-Driven 應用系

2016/2/22 IBM Bluemix 已宣布推出开源的 OpenWhisk,有了OpenWhisk,开发者对于前端的触发 (trigger) 事件,后端不需安装 Server,只要开发一小段的J...
  • chenjaulin
  • chenjaulin
  • 2016年07月04日 02:00
  • 1368

nodejs:在windows系统中安装node.js 及第一个程序Hello World

今天开始学习node.js,所以在windows 8 中安装了node.js,并不会遇到什么问题, 首先,你需要在nodejs.org中下载nodejs的windows 版本, 当前版本是v0...
  • u011067360
  • u011067360
  • 2013年12月18日 21:03
  • 1572

node.js学习之输出Hello World

//导入一个http对象 var http = require('http'); //创建一个http服务器,参数request表示客户端向服务端发送的请求,response表示服务端向客户端的回应 ...
  • november_chopin
  • november_chopin
  • 2017年07月24日 21:42
  • 178

webstorm8 +node.js +express4.x 环境搭建 写一个hello world

今天向大家
  • georgebbbb
  • georgebbbb
  • 2014年05月30日 12:30
  • 2419

《node.js开发指南》的microblog实例,采用最新的express4.2框架

  • 2014年08月11日 21:33
  • 1.43MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Serverless 框架 OpenWhisk 开发指南:使用 Node.js 编写 hello, world
举报原因:
原因补充:

(最多只允许输入30个字)