全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网

应用示例1 - hello world

更新时间:2017-11-10 17:55:27

前言

本教程是基于命令行工具fcli,习惯GUI界面的用户可以使用控制台完成hello world示例,操作过程可以点击查看这里,hello world 控制台示例

准备工作

下载函数计算命令行工具fcli,执行fcli shell进入交互模式(fcli工具的简明介绍)。如果您是第一次使用fcli,请按提示配置endpoint,access key id/secret等信息。

注意:这边建议这三个快速入门的示例一直使用同一个的endpoint,不然可能会有一些access denied问题。

创建服务

在fcli shell中执行mks demo,创建名为“demo”的服务。执行cd demo进入服务 demo 内。

编写代码

在当前目录下创建名为 code 的目录,在 code 目录下创建 hello_world.js (或 hello_world.py , 后面python版本示例都是同名的规则,之后不再赘述)文件,实现名为 handler 的 nodejs 事件处理函数。

  1. 'use strict';
  2. module.exports.handler = function(event, context, callback) {
  3. console.log('hello world');
  4. callback(null, 'hello world');
  5. };
  1. # -*- coding: utf-8 -*-
  2. def handler(event, context):
  3. print "hello world"
  4. return 'hello world'

如上例所示,nodejs 的函数签名为“function(event, context, callback)”。用户通过调用“callback”返回结果。请参考 nodejs 编程指南,获取更多细节, 至于python 版本的更多细节,请参考python 编程指南

创建函数

在fcli shell中执行mkf world -h hello_world.handler -d code -t nodejs6,在服务 demo 中创建名为 world 的函数。当完成这一步后,实际上您已经实现了一个高可用且弹性伸缩的 web server。

注意:

python 版本执行的命令是mkf world -h hello_world.handler -d code -t python2.7,后面python版本示例都是runtime都是python2.7,不再赘述。

参数详解:

  1. handler 格式为“文件名.函数名”。例如 hello_world.handler 指定了函数的调用入口为 hello_world.js 文件中的 handler 函数

  2. -d code告诉 fcli 将当前目录下名为 code 的目录下的文件作为代码文件。fcli 将为您打包代码并上传到函数计算服务。代码打包要求您的机器上已安装 docker。docker 的具体安装步骤,请参阅相关文档。国内用户访问 docker 官方镜像库速度较慢,建议您使用阿里云镜像加速服务,具体设置请参阅相关文档。在 linux 下使用 docker,要求有 root 权限。所以您需要使用 sudo fcli shell 的方式启动命令行工具;或者您可以参照相关文档设置,以非 root 用户管理 docker。此外,您也可以将代码存放在 OSS 中,指定 OSS 路径并授予函数计算访问该 OSS 位置的权限。

  3. -t nodejs6指定了函数运行时为nodejs。目前我们还支持python和java(java的使用请参考 java_编程指南 ),未来我们会支持更多的语言,敬请关注

  4. 您还可以通过-m参数指定函数运行的memory资源规格,默认为128MB

  5. 更多参数请参考:mkf --help

调用函数

在fcli shell中执行invk world,您应当看到输出结果为 hello world。

完整示例

  1. songluo@demo $ ls
  2. code fcli
  3. songluo@demo $ cat code/hello_world.js
  4. 'use strict';
  5. module.exports.handler = function(event, context, callback) {
  6. console.log('hello world');
  7. callback(null, 'hello world');
  8. };
  9. songluo@demo $ ./fcli shell
  10. Welcome to the function compute world. Have fun!
  11. >>> mks demo
  12. >>> cd demo
  13. >>> mkf world -t nodejs6 -h hello_world.handler -d code
  14. >>> invk world
  15. hello world

注意: 完整的shell操作视频 hello_world,视频里面的命令可以直接复制。

控制台查看

这边也提供了可视化工具,更加直观查看已经创建的service和function,可以在阿里云官网登录控制台-> 函数服务管理控制台,这边在服务列表中(对应endpoint的区域,假设是华东2)可以看到服务demo,点开demo,里面有创建的world函数。

console

具体的hello_world控制台操作过程可以点击hello world 控制台示例

本文导读目录