fun init作为Funcraft的子命令用于指定应用模板,您可以使用函数计算提供的常用模板,也可以进行自定义应用模板,快速创建函数计算应用。本文介绍如何通过fun init快速体验和开发函数计算的应用。

注意 本文介绍的内容后期将不再维护。如果您的函数计算资源是使用Funcraft管理的,建议您将资源迁移至Serverless Devs管理。

关于如何将函数计算的相关资源从Funcraft迁移到Serverless Devs进行管理的详细操作,请参见从Funcraft迁移到Serverless Devs

关于Serverless Devs的详细信息,请参见什么是Serverless Devs

由此带来的不便,敬请谅解!

功能介绍

您可以执行以下代码获取fun init的功能介绍。
fun init --help
返回结果如下:
Usage: fun init [options] [template]

Initialize a new project based on a template. A template can be a folder containing template metadata and boilerplate files, a name of a pre-built template, or a url that resolves to a template. You can find more information about template at https://yq.aliyun.com/articles/674364.

Options:
  -o, --output-dir [path]  Where to output the initialized app into (default: ".")
  -n, --name [name]        The name of your project to be generated as a folder (default: "")
  -m, --merge [merge]      Merge into the template.[yml|yaml] file if it already exist (default: false)
  --no-input               Disable prompting and accept default values defined template config
  -V, --var [vars]         Template variable
  -h, --help               display help for command

  Examples:

    $ fun init
    $ fun init event-nodejs8
    $ fun init foo/bar
    $ fun init gh:foo/bar
    $ fun init gl:foo/bar
    $ fun init bb:foo/bar
    $ fun init github:foo/bar
    $ fun init gitlab:foo/bar
    $ fun init bitbucket:foo/bar
    $ fun init git+ssh://git@github.com/foo/bar.git
    $ fun init hg+ssh://hg@bitbucket.org/bar/foo
    $ fun init git@github.com:foo/bar.git
    $ fun init https://github.com/foo/bar.git
    $ fun init /path/foo/bar
    $ fun init -n fun-app -V foo=bar /path/foo/bar

命令参数说明

参数 默认值 是否必填 描述 示例
-o, --output-dir . 初始化的应用程序的输出目录。
fun init -o /path/foo/bar
-n, --name fun-app 应用程序所在文件夹的名称。
fun init -n <projectname>
-m, --merge false 合并当前内容到YAML文件中。
fun init -m
--no-input 禁用提示并接受默认值定义模板配置。

如果您不想被提示输入模板变量,您可以通过该选项跳过输入提示,直接使用模板变量的默认值。

fun init --no-input       
-V, --var 模板变量。模板中可能会有很多模板变量,在初始化模板的过程中,如果需要您填写某些模板的变量值,会提示您进行设置,您可以通过以下方式进行设置:
  • 自定义设置该变量。
  • 回车使用默认值。
  • 通过-V, --var选项设置模板的变量值,通过该选项设置好模板的变量值后,系统就不会再提示您输入了。
说明 选项格式:以等号分隔的键值对,键只能包含字母、数字和下划线(_),值可以是任意字符。
fun init -V foo=bar -V bar=baz
-h, --help 打印使用说明。
fun init -h

获取应用模板

您可以通过以下途径获取应用模板:
  • 函数计算官方模板,包括:
    • 离线模板:内嵌在Funcraft工具中的模板。
    • 在线模板:通过模板名称来指定模板位置,在Funcraft内部会将其转换为GitHub地址。
  • Git或Mercurial仓库模板:从相应仓库中获取应用模板。
  • 本地文件系统路径模板:从本地获取应用模板。
  • 自定义模板:从GitHub上获取已上传的自定义模板。

获取函数计算官方离线模板

  1. 执行以下命令指定应用所在目录。
    fun init -o /myapp
  2. 选择Funcraft内置的应用模板。
    ? Select a template to init (Use arrow keys or type to search)
    > event-nodejs12
      event-nodejs10
      event-nodejs8
      event-nodejs6
      event-python3
      event-python2.7
      event-java8
      event-php7.2
      event-dotnetcore2.1
      http-trigger-nodejs12
      http-trigger-nodejs10
      http-trigger-nodejs8
      http-trigger-nodejs6
      http-trigger-python3
      http-trigger-python2.7
      http-trigger-java8 
    (Move up and down to reveal more choices)                 
    说明 在指定目录下您既可以看到刚创建好的模板应用,还可以在代码文件中编写您的逻辑代码。

获取函数计算官方在线模板

函数计算官方在线模板存放在GitHub中。

执行fun init <templates name>即可获取在线应用模板。

获取Git或Mercurial仓库模板

指定Git或Mercurial仓库模板,支持多种前缀的缩写形式。对于GitHub,可以进一步缩写为user/repo。您可以使用以下模板:
  • fun init foo/bar
  • fun init fun init gh:foo/bar/bar
  • fun init fun init gl:foo/barfoo/bar
  • fun init fun init bb:foo/bar/bar
  • fun fun init github:foo/barfoo/bar
  • fun fun init gitlab:foo/barfoo/bar
  • fun fun init bitbucket:foo/barfoo/bar
  • fun ifun init git+ssh://git@github.com/foo/bar.gitnit foo/bar
  • fun init hg+ssh://hg@bitbucket.org/bar/foo
  • fun init git@github.com:foo/bar.git
  • fun init https://github.com/foo/bar.git
  • fun init /path/foo/bar
  • fun init -n fun-app -V foo=bar /path/foo/bar

获取本地模板

  1. 克隆在线模板至本地。
  2. 执行以下代码获取本地应用模板。
    fun init /path/foo/bar //替换为您的应用所在文件夹的路径。

获取自定义模板

如果现有的模板不能满足您的需求,您可以自定义模板,然后将模板上传到GitHub上。当您或其他人需要使用该模板时,可以从GitHub中获取该模板。

  1. 自定义您的应用模板。
  2. 将模板上传至GitHub。
  3. 执行以下命令获取自定义模板。
    fun init <template URL>