本文介绍使用fun local invoke命令运行不同语言事件函数的操作步骤和命令格式。

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

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

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

关于如何使用Serverless Devs调试函数,请参见功能列表

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

命令格式

运行本地事件函数的命令格式有以下几种方式。
  • 通过函数名运行。
    fun local invoke <your function>
  • 通过服务名/函数名运行。
    fun local invoke <your service>/<your function>
说明
  • 您可以直接使用fun local invoke运行函数。如果您需要精准匹配,可以使用服务名/函数名的方式。
  • template.yml中包含多个服务,且多个服务中包含相同名称的函数时,如果通过函数名的方式调用,则Funcraft工具只会运行第一个匹配的函数。

Node.js及Python函数

Node.js和Python类型函数的运行方法基本一致。下文以函数名demo、应用模板event-nodejs8为例,介绍如何运行Node.js函数。

  1. 执行以下命令构建函数。
    fun init event-nodejs8 -o ./demo
  2. 在目标目录中通过以下命令运行该函数。
    • 通过函数名运行该函数。
      fun local invoke demo
    • 通过服务名/函数名运行该函数。
      fun local invoke demo/demo

您也可以通过-d参数调试Node.js、Python函数。具体操作,请参见调试Node.js、Python函数

Java函数

下文以函数名demo、应用模板event-java8为例,介绍如何运行Java函数。

  1. 执行以下命令构建函数。
    fun init event-java8 -o ./demo
  2. 执行以下命令编译函数。
    fun build demo
    说明 由于Java不同于解释型语言,在运行函数前需要先编译。关于构建代码包的详细信息,请参见使用fun build构建代码包
  3. 在目标目录中通过以下命令运行该函数。
    • 通过函数名运行该函数。
      fun local invoke demo
    • 通过服务名/函数名运行该函数。
      fun local invoke demo/demo

您也可以通过-d参数调试Java函数。具体操作,请参见调试Java函数

PHP函数

下文以函数名demo、应用模板event-php7.2为例,介绍如何运行PHP函数。

  1. 执行以下命令构建函数。
    fun init event-php7.2 -o ./demo
  2. 在目标目录中通过以下命令运行该函数。
    • 通过函数名运行该函数。
      fun local invoke demo
    • 通过服务名/函数名运行该函数。
      fun local invoke demo/demo

您也可以通过-d参数调试PHP函数。具体操作,请参见调试PHP函数