您可以在Linux、Mac OS X和Windows系统上安装Fun命令工具。本文介绍如何安装和配置Fun工具。

前提条件

  • Fun使用Node.js开发,开始操作本文内容前请确保您的系统已安装Node.js 8.0.0 及以上版本。
  • 本地类Link IoT Edge环境基于Docker构建,请确保您的系统已安装Docker。Docker安装请参考获取Docker

安装

  1. 登录您已安装Node.js和Docker的本地机器。
  2. 安装Fun。
    npm install -g @alicloud/fun
  3. 查看安装结果。
    fun --version

    系统返回一个版本号,表示安装成功。

帮助

查看Fun工具的帮助信息。

Fun被扩展以支持Link IoT Edge上Serverless应用的开发和调试,在Fun以及子命令后添加-h--help来查看Fun的帮助信息。
说明 您也可以通过函数计算服务的Fun文档或者GitHub内容来了解Fun的帮助信息。
$ fun --help
Usage: fun [options] [command]

The fun command line provides a complete set of commands to define, develop, test
serverless applications locally, and deploy them to the Alibaba Cloud.

Options:
  -v, --version  output the version number
  --verbose      verbose output
  -h, --help     output usage information

Commands:
  config         configure the fun
  init           initialize a new fun project
  install        install dependencies which are described in fun.yml
  build          build the dependencies
  local          run your serverless application locally
  edge           run your serverless application at edge
  validate       validate a fun template
  deploy         deploy a fun application
  help [cmd]     display help for [cmd]
其中,Link IoT Edge扩展相关的内容由edge子命令提供。
$ fun edge --help
Usage: fun edge [options] [command]

Run your serverless application at edge (within local Link IoT Edge environment) for
quick development & testing.

Options:
  -h, --help  output usage information

Commands:
  invoke      invoke a function at edge once
  start       launch one local Link IoT Edge environment, or create one if none exist
  stop        stop the local Link IoT Edge environment
  help [cmd]  display help for [cmd]

配置

开始使用Fun工具之前,需要进行一些配置,包括账号ID、Access Key、默认地域、重试次数等。您可以执行如下命令,然后依据系统提示输入Fun相关配置信息。
fun config
执行命令后的配置信息过程类似如下。
$ fun config
? Aliyun Account ID <Your Aliyun Account ID>
? Aliyun Access Key ID <Your Aliyun Access Key ID>
? Aliyun Secret Access Key <Your Aliyun Access Key Secret>
? Default region name <Your Default Region Name>
? The timeout in seconds for each SDK client invoking 10
? The maximum number of retries for each SDK client 6
其中: