无服务器 ,功能即服务(FaaS)或仅具有云功能,就可以编写将在云中运行的代码。 您可以使用多种不同的语言(例如JavaScript(Node.js),Swift,Python,Java,PHP和其他语言)编写功能代码。 很好的是,您不必担心服务器,容器,部署等问题。您编写代码,云平台将确保其执行!
在此博客文章中,您将学习如何构建Hello World函数。 您将使用IBM Cloud Functions来构建和运行该功能(最后有关更多信息)。 现在,让我们跳到创建第一个函数。
创建和测试云功能
在本节中,您将创建并测试新功能。
-
- 注册免费的Lite IBM Cloud帐户或登录现有帐户
- 点击目录
- 删除label:lite过滤器,然后单击Enter更新服务列表
- 输入函数并单击Enter
- 单击功能框
- 单击开始创建按钮
- 单击创建动作选项
- 输入“ helloworld”作为“动作名称” 。
- 保留附件包的默认值。
- 对于Runtime ,还要保留Node.js的默认值
- 单击创建按钮。 具有功能代码的代码编辑器将加载,如下所示:
- 您没有使用模板,但是即使默认功能也附带了最基本JavaScript代码,该代码返回Hello World 。
- 该功能称为main 。
- params对象允许将参数传递到函数中。 我将在另一篇博客文章中介绍。
- return返回带有函数响应的JSON对象。 在这种情况下,它只是一个简单的文本。
下一步是测试功能。
- 单击“ 调用”按钮(在编辑器的右上方)。 结果应如下所示:
-
您刚刚创建了一个新的云功能(您没有编写任何代码,但是现在还可以),并且还可以在云中测试该功能。
您很可能希望将此功能作为REST API调用。 幸运的是,这很容易做到。
作为REST API调用
在本节中,您将作为REST API调用该函数。
- 在左侧,单击“ 端点”
- 在CURL部分,您将看到curl命令来调用此函数。 单击眼睛图标以显示用户名/密码。 基本身份验证用于保护此功能
- 单击复制图标以复制curl命令
- 打开“ 终端”窗口,然后粘贴curl命令。 您应该从API(函数)中看到完整的JSON响应:
也可以直接从浏览器地址栏中调用功能API。 为此,请以以下格式设置URL的格式:
https://username:password@openwhisk.ng.bluemix.net/api/v1/namespaces/maxkatzorg_dev/actions/hello?blocking=true
用实际值替换用户名和密码 。 单击eye-icon,您将能够看到这些值。 从Chrome运行时的外观如下:
作为Web操作调用
在本节中,您将学习如何将函数作为Web动作调用。 Web Action非常类似于您在没有身份验证的情况下在上一节中调用的API。 在Web Action中,身份验证取决于开发人员。
- 单击端点选项卡
- 选中“ 作为Web操作启用”复选框
- 点击保存按钮
- 复制URL ,然后将其粘贴到浏览器地址栏中。 您应该在浏览器中看到以下内容:
{"message": "Hello World" }
如果您使用最新版本的Firefox,则应该看到此输出的格式化版本(由于Firefox的内置工具)
IBM Cloud功能
在这篇博客文章中,我使用了IBM Cloud Functions来创建云功能。 IBM Cloud Functions基于流行的开源Apache OpenWhisk项目 。
摘要
在此博客文章中,您学习了如何构建第一个云功能。 它既快速又简单。 现在,这个空间并不新鲜(大多数人可能会想到)。 可以执行代码的基于云的环境已经成为后端即服务 (BaaS)或移动后端即服务 (mBaas)类型的公司的一部分。 公司如解析 (被Facebook收购,然后开源), StackMob (贝宝收购) Kinvey (由进步收购)和Appery.io提供(Appery.io和Kinvey提供今天)的选项来写,并在云中执行代码不用担心服务器。 您确实对资源和不同的定价结构有一些限制。 这是另一篇博客文章的主题。
翻译自: https://www.javacodegeeks.com/2018/07/serverless-hello-world-function.html