FC组件(非YAML模式)即FC组件CLI模式,该模式下您无需在本地创建s.yaml文件并配置信息就能实现资源管理。例如同步管理资源,当您已成功将资源部署到线上然后想免除手写配置信息等,您只需执行s cli fc sync相关命令,就能将云上资源同步至本地。本文介绍如何使用FC组件CLI模式管理资源。

前提条件

操作命令

当您在使用Serverless Devs工具对函数计算进行操作时,可能会产生一些新的资源,例如在进行资源部署时,将VPC等参数设置为Auto,那么在成功部署资源后您无法确认线上的资源状态。FC组件为您提供了查看线上资源状态的能力,您可以使用s cli fc info 的相关命令查看线上资源状态。

命令格式

s cli fc info --region <regionid> --service-name <serviceName> --function-name <functionName> --trigger-name <triggerName>

参数说明

  • --function-name string:指定函数名称。
  • --region string:指定地域。
  • --service-name string:指定服务名称。
  • --trigger-name string:指定触发器名称。

执行示例

s cli fc info --region cn-hangzhou --service-name serviceName 

FC组件为您提供了在线调用函数计算相关资源的能力,您可以使用s cli fc invoke的相关命令进行调用执行函数。

命令格式

s cli fc invoke --event <payload>  --event-file <file-path> --region <regionid> --service-name <serviceName> --function-name <functionName>  --event-stdin --invocation-type <async>

参数说明

  • --event string:指定在调用期间传递给函数的事件数据。
  • --event-file string:如果是事件函数,指定在调用期间传递给函数数据的文件;如果是HTTP函数,指定包含HTTP请求选项的文件。
  • --event-stdin string:指定从标准输入或管道输入读取。
  • --function-name string:指定函数名称。
  • --invocation-type string:指定调用类型,默认同步调用sync。支持同步调用sync和异步调用async两种调用类型。
  • --region string:指定地域。
  • --service-name string:指定服务名称。

执行示例

s cli fc invoke --region cn-hangzhou --function-name test --invocation-type async 

当您使用FC组件进行资源部署等操作时,可能需要查看线上日志信息。FC组件为您提供了查询日志的能力,您可以使用s cli fc logs的相关命令查看日志信息。

命令格式

s cli fc logs -s <starttime> -e <endtime> --region <regionid> --request-id <requestID> --service-name <serviceName> --function-name <functionName> --keyword <test> --tail boolean --type <failed>

参数说明

  • -e--end-time string:指定查询日志的结束时间。
  • --function-name string:指定函数名称。
  • --keyword string:指定关键字。
  • --region string:指定地域。
  • --request-id string:在时间段内指定请求ID。
  • --service-name string:指定服务名称。
  • -s--start-time string:指定查询日志的起始时间。
  • --tail boolean:指定连续输出日志模式。
  • --type string:指定查询的日志类型。

执行示例

s cli fc logs --region cn-hangzhou --service-name serviceName --function-name functionName

当您成功部署函数后,需要查询一些指标信息,例如函数被调用的次数,函数执行成功的次数或函数执行失败的次数等。FC组件为您提供了查询指标信息的能力,您可以使用s cli fc metrics的相关命令查看函数的指标信息。

命令格式

s cli fc metrics --region <regionid> --service-name <serviceName> --function-name <functionName>

参数说明

  • --function-name string:指定函数名称。
  • --region string:指定地域。
  • --service-name string:指定服务名称。

执行示例

s cli fc metrics --region cn-hangzhou --service-name serviceName --function-name functionName

当您成功执行以上命令后,将在执行输出中返回一个URL地址,使用浏览器打开该地址即可查看目标资源的指标信息。

当您已经成功部署了线上资源,然后想免除手写配置信息等操作,您可以使用FC组件进行托管,或者将使用FC组件管理已有资源。FC组件为您提供了同步管理资源的能力,您可以使用s cli fc sync的相关命令同步管理资源。

命令格式

s cli fc sync -f --region <regionid> --service-name <serviceName> --function-name <functionName> --target-dir <storage directory> --trigger-name <triggername> --type <all>

参数说明

  • -f--force boolean:强制覆盖代码文件。
  • --function-name string:指定函数名称。
  • --region string:指定地域。
  • --service-name string:指定服务名称。
  • --target-dir string:指定存储目录,如果不指定,则默认为当前目录。
  • --trigger-name string:指定触发器名称。
  • --type string:指定操作类型,例如codeconfigall

执行示例

s cli fc sync --region cn-hangzhou --service-name serviceName --function-name functionName --type config

FC组件为您提供了配置版本的能力,您可以使用s cli fc version的相关命令配置版本。s cli fc version命令下包含s cli fc version publishs cli fc version list子命令。

  • s cli fc version publish:发布版本。

    命令格式

    s cli fc version publish --region <regionid> --service-name <serviceName> --description <description>

    参数说明

    • --description string:指定版本的描述信息。
    • --region string:指定地域。
    • --service-name string:指定服务名称。

    执行示例

    s cli fc version publish --region cn-hangzhou --service-name serviceName

  • s cli fc version list:获取版本列表。

    命令格式

    s cli fc version list --region <regionid> --service-name <serviceName> --table boolean

    参数说明

    • --region string:指定地域。
    • --service-name string:指定服务名称。
    • --table boolean:指定以表格形式输出版本列表。

    执行示例

    s cli fc version list --region cn-hangzhou --service-name serviceName --table boolean

FC组件为您提供了配置别名的能力,您可以使用s fc cli alias的相关命令配置别名。s cli fc alias命令下包含s cli fc alias publishs cli fc alias gets cli fc alias list子命令。

  • s cli fc alias publish:发布别名。

    命令格式

    s cli fc alias publish --alias-name <aliasName> --description <description> --gversion <grayscale version id> --region <regionid> --service-name <serviceName> --function-name <functionName> --version-id <versionID> --weight <weight parameter >

    参数说明

    • --alias-name string:指定别名名称。
    • --description string:指定别名的描述信息。
    • --gversion string:指定灰度版本ID的参数信息。
    • --region string:指定地域。
    • --service-name string:指定服务名称。
    • --version-id string:指定别名指向的版本。
    • --weight string:指定灰度版本的权重参数。

    执行示例

    s cli fc alias publish --version-id 3  --alias-name aliasName

  • s cli fc alias get:查看别名信息。

    命令格式

    s cli fc alias get --alias-name <aliasName> --region <regionid> --service-name <serviceName> 

    参数说明

    • --alias-name string:指定别名名称。
    • --region string:指定地域。
    • --service-name string:指定服务名称。

    执行示例

    s cli fc alias get --region cn-hangzhou --alias-name aliasName

  • s cli fc alias list:获取别名列表。

    命令格式

    s cli fc alias list --table boolean --region <regionid> --service-name <serviceName> 

    参数说明

    • --region string:指定地域。
    • --service-name string:指定服务名称。
    • --table boolean:指定以表格形式输出别名列表。

    执行示例

    s cli fc alias list --region cn-hangzhou --service-name serviceName

FC组件为您提供了管理预留资源的能力,您可以使用s cli fc provision的相关命令管理预留资源。s cli fc provision命令下包含s cli fc provision lists cli fc provision puts cli fc provision get多个子命令

  • s cli fc provision put:配置预留资源。

    命令格式

    s cli fc provision put --config <configuration path> --qualifier <qualifier> --region <regionid> --target <target parameter> --service-name <serviceName> 

    参数说明

    • --config string:指定配置路径的参数信息。
    • --qualifier string:指定服务的别名或版本。
    • --region string:指定地域。
    • --service-name string:指定服务名称。
    • --target number:指定预留配置的目标个数。

    执行示例

    s cli fc provision put --target 1 --qualifier alias

  • s cli fc provision list:查看预留资源列表。

    命令格式

    s cli fc provision list --table boolean --qualifier <qualifier> --region <regionid> --service-name <serviceName> 

    参数说明

    • --region string:指定地域。
    • --service-name string:指定服务名称。
    • --qualifier string:指定服务的别名或版本。
    • --table boolean:指定以表格形式输出别名。

    执行示例

    s cli fc provision list --region cn-hangzhou --service-name serviceName

  • s cli fc provision get:查看预留资源。

    命令格式

    s cli fc provision get --qualifier <qualifier> --region <regionid> --function-name <functionName> --service-name <serviceName> 

    参数说明

    • --function-name string:指定函数名称。
    • --qualifier string:指定服务的别名或版本。
    • --region string:指定地域。
    • --service-name string:指定服务名称。

    执行示例

    s cli fc provision get --qualifier test

FC组件为您提供了管理按量资源的能力,您可以使用s cli fc onDemand的相关命令管理按量资源。s cli fc onDemand命令下包含s cli fc onDemand puts cli fc onDemand lists cli fc onDemand get多个子命令。

  • s cli fc onDemand put:配置按量资源。

    命令格式

    s cli fc onDemand put --function-name <functionName> --max  <maximumInstanceCount > --qualifier <qualifier> --region <regionid> --service-name <serviceName> 

    参数说明

    • --function-name string:指定函数名称。
    • --max--maximum-instance-count string:指定最大实例个数。
    • --qualifier string:指定服务的别名或版本。
    • --region string:指定地域。
    • --service-name string:指定服务名称。

    执行示例

    s cli fc onDemand put --qualifier test --max 1 

  • s cli fc onDemand list:查看按量资源列表。

    命令格式

    s cli fc onDemand list --table boolean --region <regionid> --service-name <serviceName> 

    参数说明

    • --region string:指定地域。
    • --service-name string:指定服务名称。
    • --table boolean:指定以表格形式输出按量资源。

    执行示例

    s cli fc onDemand list --table boolean

  • s cli fc onDemand get:查看按量资源。

    命令格式

    s cli fc onDemand get --function-name <functionName> --qualifier <qualifier> --region <regionid> --service-name <serviceName> 

    参数说明

    • --function-name string:指定函数名称。
    • --qualifier string:指定服务的别名或版本。
    • --region string:指定地域。
    • --service-name string:指定服务名称。

    执行示例

    s cli fc onDemand get --qualifier test

层可以为您提供自定义的公共依赖库、运行时环境及函数扩展等发布与部署能力。您可以将函数依赖的公共库提炼到层,以减少部署、更新时的代码包体积,也可以将自定义的运行时,以层部署在多个函数间共享。

FC组件为您提供了配置层、管理层的能力,您可以使用s cli fc layer的相关命令配置管理层。s cli fc layer命令下包含s cli fc layer publishs cli fc layer lists cli fc layer versionConfigs cli fc layer versions多个子命令。

  • s cli fc layer publish:发布层版本。

    命令格式

    s cli fc layer publish --code <codefile> --compatible-runtime <Runtime> --description <description> --region <regionid> --layer-name <layerName>

    参数说明

    • --code string:指定压缩的代码文件,代码文件必须是ZIP格式。
    • --compatible-runtime string:指定层的运行环境。
    • --description string:指定层的描述信息。
    • --layer-name string:指定层名称。
    • --region string:指定地域。

    执行示例

    s cli fc layer publish --layer-name testName --code ./
  • s cli fc layer list:查看层列表。

    命令格式

    s cli fc layer list --prefix <prefix> --region <regionid> --table boolean

    参数说明

    • --prefix string:指定返回资源的名称前缀。
    • --region string:指定地域。
    • --table boolean:指定以表格形式输出按量资源。

    执行示例

    s cli fc layer list --table boolean
  • s cli fc layer versionConfig:获取指定层版本的信息。

    命令格式

    s cli fc layer versionConfig --layer-name <layerName> --region <regionid> --version-id <version>

    参数说明

    • --layer-name string:指定层名称。
    • --region string:指定地域。
    • --version-id number:指定层版本。

    执行示例

    s cli fc layer versionConfig --layer-name layerName --version-id 2
  • s cli fc layer versions:获取指定层的所有版本信息。

    命令格式

    s cli fc layer versions --layer-name <layerName> --region <regionid> --table boolean

    参数说明

    • --layer-name string:指定层名称。
    • --region string:指定地域。
    • --table boolean:指定以表格形式输出指定层的版本信息。

    执行示例

    s cli fc layer versions --layer-name layerName --table boolean

您可以通过压测s cli fc stress的相关命令实现函数的压力测试。s cli fc stress命令下包含s cli fc stress starts cli fc stress clean子命令。

  • s cli fc stress start:开始压测。

    命令格式

    事件函数:

    s cli fc stress start --function-name <functionName> --num-user <6> --payload <"hello world"> --payload-file <./payload.file> --function-type <event> --region <regionid> --service-name <serviceName> --qualifier <LATEST> --run-time <30> --spawn-rate <2>

    HTTP函数:

    s cli fc stress start --function-name <functionName> --method <POST> --num-user <6> --payload <"hello world"> --payload-file <./payload.file> --function-type <http> --region <regionid> --service-name <serviceName> --run-time <30> --spawn-rate <2> --url <myUrl>

    参数说明

    • --function-name string:指定函数名称。
    • --function-type string:指定函数类型,取值为httpevent
    • --method string:指定函数的请求方法,取值为GETPOSTPUTPATCHDELETEOPTIONSHEAD。仅当--function-type参数取值为http时,须指定此参数。
    • --num-user number:指定模拟使用者的数量。
    • --payload string:指定函数的输入,该参数取值如下:
      • --function-type string参数取值为event时,指定事件函数的入参。
      • --function-type string参数取值为http时,指定HTTP函数的请求体。
    • --payload-file string:根据函数类型不同,该参数取值如下:
      • --function-type参数取值为event时,指定触发函数参数的文件路径。
      • --function-type参数取值为http时,指定传触发函数请求体的文件路径。
    • -q--qualifier string:指定函数的别名或版本。仅当--function-type参数取值为event时,须指定此参数。
    • --region string:指定函数所在的地域。
    • --run-time number:指定函数压测的持续时间。
    • --service-name string:指定服务的名称。
    • --spawn-rate number:指定每秒增加的使用者数量。
    • -u--url string:指定目标网址。当--function-type参数取值为http时,须指定此参数。

    执行示例

    • 事件函数:

      s cli fc stress start --num-user 6 --spawn-rate 10 --run-time 30 --function-type event --service-name serviceName --function-name functionName --qualifier LATEST --payload "hello world" --region cn-shanghai --access   default

    • HTTP函数:

      s cli fc stress start --num-user 6 --spawn-rate 10 --run-time 30 --function-type http --url https://188077086902****.cn-shanghai.fc.aliyuncs.com/2016-08-15/proxy/demo.LATEST/test/  --method POST --payload "hello world" --region cn-shanghai --access default 

  • (可选)s cli fc stress clean:清理压测环境。

    命令格式

    s cli fc stress clean --region <regionid> -y 

    参数说明

    • -y--assume-yes boolean:在执行输出的过程中将所有问题的答案都指定为yes
    • --region string:指定地域。

    执行示例

    s cli fc stress clean --region cn-hangzhou -y

FC组件为您提供了对事件函数和HTTP函数发起探测的能力,您可以使用s cli fc eval的相关命令,快速进行探测内存或探测并发度。

s cli fc eval start:开始探测。

命令格式

s cli fc eval start --region <regionid> --function-name  <functionName> --service-name <serviceName> --function-type <functiontype> --eval-type <evaltype> --run-count <Number>  --payload <'{"key":"val"}'> --memory-size <MemorySize List>  --access <accessName>

参数说明

  • --eval-type string:指定探测类型,取值为memoryconcurrency
  • --concurrency-args string:指定目标函数被探测时的并发度参数范围和步长,例如该参数的配置信息为--concurrency-args 2,20,5,表示并发范围[2,20],步长为5,即被探测的目标函数分别在2、7、12和17不同并发值下实现探测。仅当--eval-type string参数指定为concurrency时,须指定此参数。
  • --function-name string:指定函数名称。
  • --function-type string:指定函数类型。取值为httpevent
  • --memory number:指定函数内存规格。仅当--eval-type参数指定为concurrency时,须指定此参数。
  • --memory-size string:指定函数内存规格列表,即目标函数将在不同内存规格下分别被调用。仅当--eval-type参数指定为memory时,须指定此参数。
  • --method string:指定函数的请求方法,取值为GETPOSTPUTPATCHDELETEOPTIONSHEAD。仅当--function-type参数设置为http时,须指定此参数。
  • --path string:指定目标路径。仅当--function-type参数设置为http时,须指定此参数。
  • --payload string:指定函数的输入,该参数取值如下:
    • --function-type string参数取值为event时,指定事件函数的入参。
    • --function-type string参数取值为http时,指定HTTP函数的请求体。
  • -f--payload-file string:指定触发函数执行的文件路径,该参数取值如下:
    • --function-type string参数取值为event时,指定触发函数参数的文件路径。
    • --function-type string参数取值为http时,指定传触发函数请求体的文件路径。
  • -r--region string:指定地域。
  • --query string:指定目标查询。仅当--function-type参数设置为http时,须指定此参数。
  • --rt number:指定最大响应时间。仅当--eval-type参数指定为concurrency时,须指定此参数。
  • --run-count number:指定目标函数在不同内存规格下被分别调用的次数。仅当--eval-type参数指定为memory时,须指定此参数。
  • --service-name string:指定服务名称。

执行示例

内存探测模式:

s cli fc eval start --region cn-hangzhou --function-name cpu-test --service-name dsp-test --function-type event  --eval-type memory  --run-count 10 --payload '{"key":"val"}' --memory-size 128,256,512,1024  --access default

并发度探测模式:

s cli fc eval start --region cn-hangzhou --function-name demo --service-name Service --function-type http --eval-type concurrency --memory 1536 --concurrency-args 2,20,5 --rt 200 --method=get --path /login  --query 'a=1&b=2' --access default