首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

在 IBM Cloud Functions 平台上的调用操作(1)

在 IBM Cloud Functions 平台上的调用操作(1)

OpenWhisk 基础知识OpenWhisk                是一个开源无服务器计算平台。无服务器计算背后的主要理念是,如果建立一个虚拟机只是为了托管一小段偶尔调用的代码,那就是一种资源浪费。首先,这会浪费资金,因为尽管虚拟机大部分时间都是空闲的,但您仍需付费使其                24/7                正常运行。这还会浪费时间,因为您需要花时间维护在该虚拟机中运行的软件。您需要为操作系统打补丁,需要为基础架构打补丁,还需要为语言运行时打补丁。最后,如果您的代码执行某项重要操作,您需要使其具有容错性和可扩展性,随着基于服务器的架构变得更大、更复杂,这会产生更多成本。
无服务器计算应运而生。借助 OpenWhisk,不需要创建服务器来运行代码,您可以将代码提供给系统并定义该代码应在哪些条件(用 OpenWhisk                的话说是触发器和规则)下运行。当其中一个条件发生时,OpenWhisk                运行时就会运行您的代码。您仅需按调用付费,而不是按小时付费。如果只是偶尔调用您的代码,那么无服务器计算就会便宜得多。此外,任何必要的基础架构维护都由                IBM Cloud 团队完成。这就是 IBM Cloud OpenWhisk 环境的美妙之处。               
OpenWhisk 概念OpenWhisk 环境基于多种类型的资源。尽管操作是本文中将会使用的唯一一种类型,但理解以下概念很重要:
  • 操作:操作是执行的代码。它通常执行某个短暂的任务,然后终止,代码进入休眠状态。一个操作采用一个 JSON                    对象作为其输入,并返回一个 JSON 对象作为其输出。同样地,您部署在 developerWorks 沙箱中的代码是一个 OpenWhisk                    操作。
  • 触发器:触发器是与一类事件有关联的名称。用户可以直接触发一个触发器或通过 OpenWhisk                    环境触发一个触发器来响应来自某个提要的事件。下面讲讲提要……
  • 提要:提要将外部事件源(位于 OpenWhisk 环境外部的某个事物)连接到 OpenWhisk                    触发器。例如,可以创建一个 Cloudant                    数据库更改提要,然后将该提要和一个触发器捆绑在一起。这会导致每次数据库发生更改时都会触发该触发器。
  • 规则:规则将触发器和操作捆绑在一起。当触发器触发时,一个规则会确定随后应调用哪些操作。可以定义一个规则来调用多个操作,也可以让多个规则调用同一个操作。
下图演示了这 4 个概念之间的关系。


以上就是 OpenWhisk 的基本工作原理。如果想掌握我们介绍的基本知识,了解这些概念至关重要。尽管如此,我们在这里仅会直接调用 OpenWhisk                操作。我们不会使用提要、触发器或规则,只是简单地调用我们的操作。(IBM Cloud 文档 。)               
我们的样本操作本文将要使用的样本操作是一个简单的 Hello World 操作。该代码接受一个包含 name 的 JSON                对象,并返回另一个包含个性化的 greeting 的 JSON 对象。
首先,单击下面的 Deploy 按钮来部署此代码:
以运行、更改和部署此代码。



function main(params) {
  var greeting = 'Hello, ' + params.name;
  return {greeting};
}


var defaultParameters = {'name': 'Susan'};


if (require.main === module)
  console.log(main(defaultParameters));










显示结果


沙箱返回的 URL 是 OpenWhisk 操作的地址。                如果愿意的话,可将它复制到剪贴板;我们将在整篇文章中使用该地址。(备注:生成的 URL 对您是唯一的,所以您看到的 URL                会与此处示例中的有所不同。)
我们将介绍 4 种调用操作的技术:
  • 使用基于浏览器的 HTTP 工具
  • 使用 curl 命令行工具
  • 在 node.js 应用程序内使用 npm request 包
  • 在 Java 应用程序内使用 HttpURLConnection 类
返回列表