Invoke 命令

invoke 命令是对线上函数进行调用/触发的命令。

命令解析

当执行命令invoke -h/invoke --help命令时,可以获取帮助文档。

参数解析

参数全称参数缩写Yaml 模式下必填Cli 模式下必填参数含义
region-选填必填地区,取值范围:cn-hangzhou, cn-beijing, cn-beijing, cn-hangzhou, cn-shanghai, cn-qingdao, cn-zhangjiakou, cn-huhehaote, cn-shenzhen, cn-chengdu, cn-hongkong, ap-southeast-1, ap-southeast-2, ap-southeast-3, ap-southeast-5, ap-northeast-1, eu-central-1, eu-west-1, us-west-1, us-east-1, ap-south-1
service-name-选填必填服务名
function-name-选填必填函数名
qualifier-选填选填指定调用的版本或者别名
timeout-选填选填客户端调用时间 时间设置原理
evente选填选填事件
event-filef选填选填事件文件
event-stdins选填选填事件输入
invocation-type-选填选填调用类型,取值范围:async, sync,默认:sync
stateful-async-invocation-id-选填选填有状态的异步调用
sdk-version-选填选填使用旧版的路径调用函数。取值范围:2016-08-15

当前命令还支持部分全局参数(例如-a/--access, --debug等),详情可参考 Serverless Devs 全局参数文档

操作案例

  • 有资源描述文件(Yaml)时,可以直接执行s invoke进行线上函数的调用;
  • 纯命令行形式(在没有资源描述 Yaml 文件时),需要指定服务所在地区以及服务名称,函数名等,例如s invoke --region cn-hangzhou --service-name fc-deploy-service --function-name http-trigger-py36

上述命令的执行结果示例:

Request url: https://start-fp-nodejs-hello-wice-test-cturhuznax.cn-shenzhen.fcapp.run/
========= FC invoke Logs begin =========
FC Invoke Start RequestId: 68f15da2-a453-4f7e-90d3-91198b76afbf
FC Invoke End RequestId: 68f15da2-a453-4f7e-90d3-91198b76afbf

Duration: 2.96 ms, Billed Duration: 3 ms, Memory Size: 128 MB, Max Memory Used: 10.83 MB
========= FC invoke Logs end =========

FC Invoke Result[code: ${resp.code}]:
Hello world!

注意事项

在进行调用时,如果需要指定相对应的事件,例如 oss 的事件,cdn 的事件......这些事件的格式,可以通过命令s cli fc-event获取:

方法方法说明入参示例命令行调用示例
httpHTTP 触发器事件s cli fc-event http
cdnCDN 触发器事件s cli fc-event cdn
mnsMNS 触发器事件s cli fc-event mns
ossOSS 触发器事件s cli fc-event oss
slsSLS 触发器事件s cli fc-event sls
tablestoreTableStore 触发器事件s cli fc-event tablestore

例如:如果使用 oss 的事件,进行测试,此时可以执行:s cli fc-event oss,完成之后,可以看到系统提醒的相对路径信息:

...

👓 Event Template Path: event-template/oss-event.json

...

此时,可以利用该路径的模板(可以额外进行修改)触发函数,例如:s invoke --event-file event-template/oss-event.json

权限与策略说明

  • 最大权限: AliyunFCInvocationAccess 或者 AliyunFCFullAccess

  • 最小权限:

    {
      'Version': '1',
      'Statement':
        [
          {
            'Action': 'fc:InvokeFunction',
            'Effect': 'Allow',
            'Resource': 'acs:fc:<region>:<account-id>:services/<serviceName>.<qualifier>/functions/<functionName>',
          },
        ],
    }
    
在 GitHub 上编辑本页面 更新时间: Fri, Nov 25, 2022