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

在上一篇文章《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. }

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值