在 IBM Cloud Functions 平台上的调用操作(1)
- UID
- 1066743
|
在 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 类
|
|
|
|
|
|