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/

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

$ chmod +x ./wsk$ sudo mv wsk /usr/local/bin

为客户端获取密钥

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

vagrant ssh

然后,获取密钥:

$ wsk property get --authwhisk auth        23bc46b1-71f6-4ed5-8c54-816aa4f8c502:123zO3xZCLrMN6v2BKK1dXYFpXlPkccOFqm12CdAsMgRU4VrNZ9lyGVCGuMDGIwP

在客户端设置

先看一下命令:

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。

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

$ wsk package list /whisk.systempackages/whisk.system/github                                                   shared/whisk.system/combinators                                              shared/whisk.system/slack                                                    shared/whisk.system/watson-textToSpeech                                      shared/whisk.system/utils                                                    shared/whisk.system/watson-speechToText                                      shared/whisk.system/websocket                                                shared/whisk.system/weather                                                  shared/whisk.system/samples                                                  shared/whisk.system/watson-translator                                        shared

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

OpenWhisk Node.js Hello, world

1.创建我们的 hello.js

function main() {   return {payload: 'Hello world'};}

2.创建操作

$ wsk action create hello hello.jsok: created action hello

3.触发事件

$ wsk action invoke hellook: invoked /guest/hello with id a3ea5f68844248e9aa5f68844288e98d

4.查看返回结果

wsk activation result a3ea5f68844248e9aa5f68844288e98d

就这么简单。

OpenWhisk Node.js 传递参数

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

function main(params) {  return {    payload:  'Hello, ' + params.name  };}

然后更新我们的操作:

$ wsk action update hello hello.jsok: updated action hello

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

$  wsk action invoke --result hello --param name Phodal{    "payload": "Hello, Phodal"}

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

原文发布于微信公众号 - phodal(phodal-weixin)

原文发表时间:2017-12-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT笔记

记一次8小时惊心动魄的服务器+网站升级

写在前面,这篇文章服务器升级后然并没有找到论坛Discuz和博客Typecho异常所在,捯饬了半天最终选择升级和重装,成功解决。有些时候感觉真的没必要追究问题所...

4338
来自专栏颇忒脱的技术博客

使用Kubespray安装k8s集群

本文撰写时,Kubespray的master分支不稳定,请使用release版本来安装,具体来说就是切换到最新的tag上。

3423
来自专栏IT综合技术分享

在Linux mint 18上安装IntelliJ IDEA开发环境

952183763c239acc48a99f4b29c767aa9ab89b1f83d8dc5917e6e61952fbfcf8 *ideaIU-2017.2....

4723
来自专栏编程直播室

Ionic安装环境安装关于墙国环境创建Ionic项目测试运行项目

2014
来自专栏JadePeng的技术博客

Docker+Jenkins持续集成环境(2)使用docker+jenkins构建nodejs前端项目

前文使用Docker搭建Jenkins+Docker持续集成环境我们已经搭建了基于docker+jenkins的持续集成环境,并构建了基于maven的项目。这一...

6307
来自专栏伪君子的梦呓

在 VMware workstation 安装 CentOS 虚拟机

1523
来自专栏编程坑太多

『高级篇』docker之kubernetes基础集群部署(下)(34)

kube-scheduler负责分配调度Pod到集群内的节点上,它监听kube-apiserver,查询还未分配Node的Pod,然后根据调度策略为这些Pod分...

1284
来自专栏程序猿

在 VMware workstation 安装 CentOS 虚拟机

上一篇介绍了怎么安装 VMware workstation Pro,安装完肯定是要装虚拟机啊,下面就来介绍一下怎么安装 CentOS 7.

2906
来自专栏小李刀刀的专栏

在Linux VPS上配置日志自动按日分割压缩处理

从风云主机跑路之后,就一直在折腾VPS,虽然我没有什么重要的站,只有一个很久没更新也没什么流量的小博客,但是这个小博客不管怎么说也是从2005年(实际是2004...

4006
来自专栏IMWeb前端团队

教你开发whistle插件

whistle介绍 whistle是一款用Node实现的跨平台的Web调试代理工具,支持查看修改http(s)、Websocket连接的请求和响应内容。IMWE...

2640

扫码关注云+社区