本文介绍FC组件依赖YAML文件操作资源的相关命令。

前提条件

操作命令

FC组件为您提供了函数计算相关资源的部署能力。您可以在本地目录中执行s deploy的相关命令将s.yml文件内的资源部署到函数计算。

 
说明 如果在使用s deploy的相关命令部署资源时,需要忽略一些文件,例如操作系统自动生成的文件、编译过程中生成的中间文件或可执行文件和带有账号等敏感信息的配置文件等。您可以在项目目录内新建一个.fcignore文件,将这些需要忽略的文件名填写到该文件内。
   

  • s deploy all:部署所有资源。

    命令格式

    s deploy all --type <code> --use-local -y

    参数说明

    • --type:指定部署配置或部署函数代码,例如当您修改了初始化函数的超时时间,未修改函数代码,您可以使用该参数只部署配置。当您不仅修改了配置,还修改了代码时,可以不指定该参数,默认部署配置和代码。
    • --use-local:使用本地配置部署资源。
    • -y--assume-yes:在执行输出的过程中将所有问题的答案都指定为yes

    执行示例:在项目目录中执行以下命令,部署所有资源。

    s deploy all -y

  • s deploy service:部署服务相关资源。

    命令格式

    s deploy service --use-local -y

    参数说明

    • --use-local:使用本地配置部署资源。
    • -y--assume-yes--assume-yes:在执行输出的过程中将所有问题的答案都指定为yes

    执行示例:在项目目录中执行以下命令,部署服务相关资源。

    s deploy service -y 

  • s deploy function:部署函数相关资源。

    命令格式

    s deploy function --type <code> --use-local -y

    参数说明

    • --type:指定部署配置或部署函数代码,例如当您修改了初始化函数的超时时间,未修改函数代码,您可以使用该参数只部署配置。当您不仅修改了配置,还修改了代码时,可以不指定该参数,默认部署配置和代码。
    • --use-local:使用本地配置部署资源。
    • -y--assume-yes:在执行输出的过程中将所有问题的答案都指定为yes

    执行示例:在项目目录中执行以下命令,部署函数相关资源。

    s deploy function --use-local
    
  • s deploy trigger:部署触发器相关资源。

    命令格式

    s deploy trigger --trigger-name <triggerName> --use-local -y

    参数说明

    • --trigger-name:指定触发器名称。
    • --use-local:使用本地配置部署资源。
    • -y--assume-yes:在执行输出的过程中将所有问题的答案都指定为yes

    执行示例:在项目目录中执行以下命令,部署触发器相关资源。

    s deploy trigger --trigger-name mytrigger
  • s deploy domain:部署自定义域名相关资源。

    命令格式

    s deploy domain --use-local -y
    

    参数说明

    • --use-local:使用本地配置部署资源。
    • -y--assume-yes:在执行输出的过程中将所有问题的答案都指定为yes

    执行示例:在项目目录中执行以下命令,部署自定义域名相关资源。

    s deploy domain --use-local
    
 
说明 当您的s.yml文件内包含fc-afc-b等多个函数时,只需要部署一个函数例如fc-a,您可以在项目目录中执行以下命令部署:
s fc-a deploy
   

由于函数计算未集成所有的依赖,通过FC组件的部署命令部署某些项目时可能导致部署失败,所以在部署项目前,您需要先通过FC组件安装第三方依赖。FC组件针对不同的语言分别支持一些包管理器manifest文件,例如:

  • Java maven包管理器的pom.xml文件。
  • Node.js npm包管理器的package.json文件。
  • Python pip包管理器的requirements.txt文件。
  • Container包管理器的dockerfile文件。

命令格式

s build --dockerfile <dockerfile path> -d

参数说明

  • -f--dockerfile string:指定dockerfile文件的路径。
  • -d--use-docker string:指定使用Docker构建函数。

执行示例:在项目目录中执行以下命令,安装依赖。

s build -f ./ -d

当您在使用Serverless Devs工具对函数计算进行操作时,可能会产生一些新的资源,例如在进行资源部署时,将VPC等参数设置为Auto,那么在成功部署资源后您无法确认线上的资源状态。

命令格式

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

参数说明

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

执行示例:在项目目录内执行以下命令,查询资源的详细信息。

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

说明s.yml文件内包含多个项目时,只需要查询其中一个项目的详细信息,您可以在项目目录中执行以下命令查询:
s <projectName> info//<projectName>需替换为项目名称。

FC组件为您提供了本地调用和测试函数计算相关资源的能力。您可以使用s local的相关命令进行本地调用和测试函数。s local命令下包含s local starts local invoke两个子命令。

  • s local start:调试HTTP函数。

    命令格式

    s local start -c <vscode> -d --debug-args <debugArgs> --debugger-path <debuggerPath> --tmp-dir <tmpDir>

    参数说明

    • -c--config string:指定调试时使用的IDE如Vscode或Pycharm,并为IDE输出相关的调试配置信息。
    • -d--debug-port string:指定在调试模式下启动的容器,并在本地公开此端口。
    • --debug-args:指定附加参数传递给调试器。
    • --debugger-path:指定调试器的路径。
    • --tmp-dir:指定将临时目录挂载至/tmp路径下。默认路径为./.s/tmp/invoke/serviceName/functionName/

    执行示例:在项目目录中执行以下命令调试HTTP函数。

    s local start
    
    说明s.yml文件内包含多个项目时,您也可以调试指定某个项目,例如:
    s <projectName> local start//<projectName>需替换为项目名称。

  • s local invoke:调试事件函数。

    命令格式

    s local invoke -e <event>  --c <vscode> -d <port> --debug-args <debugArgs> --debugger-path <debuggerPath> --tmp-dir <tmpDir>

    参数说明

    • -e--event:指定事件数据(字符串)或指定包含在调用期间传递给函数的事件数据的文件。
    • -f--event-file:指定在调用期间传递给函数的事件数据的文件。
    • -s--event-stdin:指定从标准输入或管道输入读取。
    • -m--mode:指定调用模式,例如apiservernormal。当您不指定此参数时,默认的调用模式为normal
    • -c--config:指定调试时使用的IDE如vScode或Pycharm,并为IDE输出相关的调试配置信息。
    • --debug-args string:指定附加参数传递给调试器。
    • -d--debug-port string:指定在调试模式下启动的容器,并在本地公开此端口。
    • --tmp-dir string:指定将临时目录挂载至/tmp路径下。默认路径为./.s/tmp/invoke/serviceName/functionName/
    • --debugger-path string:指定调试器的路径。

    执行示例:在项目目录中执行以下命令调试事件函数。

    s local invoke -e '{"key":"val"}' 
    说明s.yml文件内包含多个项目时,您也可以调试指定某个项目,例如:
    s <projectName> local start//<projectName>需替换为项目名称。

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

命令格式

s 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 invoke --region cn-hangzhou --function-name test --invocation-type async

FC组件为您提供了函数计算相关资源的部署能力。您可以使用s remove的相关命令移除相关资源。

  • s remove service:移除服务。

    命令格式

    s remove service --region <regionid>  --service-name <serviceName> --use-local -y

    参数说明

    • --region string:指定地域。
    • --service-name string:指定服务名称。
    • --use-local:指定只删除服务、函数和触发器相关的配置资源。
    • -y--assume-yes:在执行输出的过程中将所有问题的答案都指定为yes

    执行示例:在项目目录中执行以下命令,删除所有服务资源。

    s remove service -y

  • s remove function:移除函数。

    命令格式

    s remove function --region <regionid>  --service-name <serviceName> --function-name <functionName> --use-local -y

    参数说明

    • --region string:指定地域。
    • --service-name string:指定服务名称。
    • --function-name string:指定函数名称。
    • --use-local:指定只删除函数和触发器相关的配置资源。
    • -y--assume-yes:在执行输出的过程中将所有问题的答案都指定为yes

    执行示例:在项目目录中执行以下命令,删除函数。

    s remove function --function-name functionName
  • s remove trigger:移除触发器。

    命令格式

    s remove function --region <regionid>  --service-name <serviceName> --function-name <functionName> --trigger-name <triggerName>

    参数说明

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

    执行示例:在项目目录中执行以下命令,删除触发器。

    s remove trigger --service-name functionName --function-name functionName --trigger-name triggerName

  • s remove domain:移除自定义域名。

    执行示例:在项目目录中执行以下命令,删除自定义域名。

    s remove domain

  • s remove version:移除版本。

    命令格式

    s remove version --region <regionid>  --service-name <serviceName> --version <version> -y

    参数说明

    • --region string:指定地域。
    • --service-name string:指定服务名称。
    • --version string:指定版本号。
    • -y--assume-yes:在执行输出的过程中将所有问题的答案都指定为yes

    执行示例:在项目目录中执行以下命令,删除版本。

    s remove version --region cn-hangzhou --service-name serviceName --version 3
  • s remove alias:移除别名。

    命令格式

    s remove alias --region <regionid>  --service-name <serviceName> --alias-name <aliasName> -y

    参数说明

    • --region string:指定地域。
    • --service-name string:指定服务名称。
    • --alias-name string:指定别名名称。
    • -y--assume-yes:在执行输出的过程中将所有问题的答案都指定为yes

    执行示例:在项目目录中执行以下命令,删除别名。

    s remove alias-name aliasName
    
  • s remove provision:移除预留。

    命令格式

    s remove alias --region <regionid>  --service-name <serviceName> --function-name <functionName> -y

    参数说明

    • --region string:指定地域。
    • --service-name string:指定服务名称。
    • --qualifier string:指定服务的别名或版本。
    • --function-name string:指定函数名称。
    • -y--assume-yes:在执行输出的过程中将所有问题的答案都指定为yes

    执行示例:在项目目录中执行以下命令,函数预留配置。

    s remove provision --service-name serviceName --qualifier test
  • s remove onDemand:移除按量资源。

    命令格式

    s remove onDemand --region <regionid>  --service-name <serviceName> --function-name <functionName> -y

    参数说明

    • --region string:指定地域。
    • --service-name string:指定服务名称。
    • --qualifier string:指定服务的别名或版本。
    • --function-name string:指定函数名称。
    • --qualifier string:指定服务的别名或版本。
    • -y--assume-yes:在执行输出的过程中将所有问题的答案都指定为yes

    执行示例:在项目目录中执行以下命令,删除预留配置。

    s remove onDemand --assume-yes
    
  • 移除层

    命令格式

    s remove layer --region <regionid>  --layer-name <layerName> --version <version>

    参数说明

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

    执行示例:在项目目录中执行以下命令,删除层。

    s remove layer --layer-name layerName

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

命令格式

s 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 logs -r requestId
说明 在以下情况下无法通过查询请求ID的方式查看日志信息。
  • 函数设置了单实例多并发。
  • 函数的运行环境是Custom Runtime或Custom Container。

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

命令格式

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

参数说明

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

执行示例:在项目目录中执行以下命令,查询指标信息。

s metrics --service-name serviceName --function-name functionName

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

FC组件为您提供了挂载NAS文件的能力,您可以使用s nas的相关命令挂载NAS文件。s nas命令下包含s nas downloads nas uploads nas command多个子命令。

  • s nas download:将NAS已有资源下载至本地。

    命令格式

    s nas download --r -n 

    参数说明

    • -r--recursive:指定循环覆盖文件夹的内容。
    • -n--no-clobber:指定不覆盖已有文件。

    执行示例:在项目目录中执行以下命令,将NAS内mnt/auto/folder/文件内的资源下载至本地。

    s exec -- nas download -r -n nas:///mnt/auto/folder/. ./folder
    

  • s nas upload:将本地资源上传至指定的NAS目录中。

    命令格式

    s nas upload --r -n 

    参数说明

    • -r--recursive:指定循环覆盖文件夹的内容。
    • -n--no-clobber:指定不覆盖已有文件。

    执行示例:在项目目录中执行以下命令,将本地资源上传至NAS内mnt/auto/folder/文件中。

    s exec -- nas upload -r -n ./event-code nas:///mnt/auto1/folder

  • s nas command:支持在实例中执行某些命令,对NAS进行操作。

    执行示例:在项目目录中执行以下命令,查看线上NAS的文件列表。

    s exec -- nas command ls -a nas:///mnt/auto1/folder

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

  • s version publish:发布版本。

    命令格式

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

    参数说明

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

    执行示例:在项目目录中执行以下命令,发布版本。

    s version publish --region cn-hangzhou --service-name fc-deploy-service
    

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

    命令格式

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

    参数说明

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

    执行示例:在项目目录中执行以下命令,查看版本列表。

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

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

  • s alias publish:发布别名。

    命令格式

    s 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 alias publish --version-id 3  --alias-name aliasName
  • s alias get:查看别名信息。

    命令格式

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

    参数说明

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

    执行示例:在项目目录中执行以下命令,查看别名信息。

    s alias get --region cn-hangzhou --alias-name aliasName
  • s alias list:获取别名列表。

    命令格式

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

    参数说明

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

    执行示例:在项目目录中执行以下命令,查看别名列表。

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

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

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

    命令格式

    s 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 provision put --target 1 --qualifier alias

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

    命令格式

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

    参数说明

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

    执行示例:在项目目录中执行以下命令,查看预留资源列表。

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

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

    命令格式

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

    参数说明

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

    执行示例:在项目目录中执行以下命令,查看预留的配置信息。

    s provision get --qualifier test

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

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

    命令格式

    s 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 onDemand put --qualifier test --max 1
  • s onDemand list:查看按量资源列表。

    命令格式

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

    参数说明

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

    执行示例:在项目目录中执行以下命令,查看按量资源列表。

    s onDemand list --table boolean
  • s onDemand get:查看按量资源。

    命令格式

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

    参数说明

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

    执行示例:在项目目录中执行以下命令,查看按量资源的配置信息。

    s onDemand get --qualifier test

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

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

  • s layer publish:发布层版本。

    命令格式

    s 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 layer publish --layer-name testName --code ./
  • s layer list:查看层列表。

    命令格式

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

    参数说明

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

    执行示例:在项目目录中执行以下命令,查看层列表。

    s layer list
  • s layer versionConfig:获取指定层版本的信息。

    命令格式

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

    参数说明

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

    执行示例:在项目目录中执行以下命令,获取指定层的版本信息。

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

    命令格式

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

    参数说明

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

    执行示例:在项目目录中执行以下命令,获取指定层的所有版本信息。

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

FC组件为您提供了端云联调的能力,您可以使用s proxied的相关命令进行端云联调。s proxied命令下包含s proxied setups proxied invokes proxied clean多个子命令。

  • s proxied setup:准备端云联调的辅助资源和相关环境。

    命令格式

    s proxied setup -c <IDE> --debug-args <debugargs> -d --debugger-path <debuggerPath> --tmp-dir <tmpDir>

    参数说明

    • -c--config string:指定调试时使用的IDE如Vscode或Pycharm,并为IDE输出相关的调试配置信息。
    • --debug-args string:指定附加参数传递给调试器。
    • -d--debug-port string:指定在调试模式下启动的容器,并在本地公开此端口。
    • --debugger-path string:指定调试器的路径。
    • --tmp-dir string:指定将临时目录挂载至/tmp路径下。默认路径为./.s/tmp/invoke/serviceName/functionName/

    执行示例:在项目目录中执行以下命令,为端云联调准备所需的辅助资源和本地环境。

    s proxied setup -c vscode
    说明s.yml文件内包含多个项目,只需要测试指定某个项目时,请执行以下命令:
    s <projectName> proxied setup//<projectName>需替换为项目名称。
  • s proxied invoke:调用本地函数。

    命令格式

    s proxied setup -e <event> -f <file>  -s
    

    参数说明

    • -e--event string:指定在调用期间传递给函数的事件数据。
    • -f--event-file:指定在调用期间传递给函数的事件数据的文件。
    • -s--event-stdin:指定从标准输入或管道输入读取。

    执行示例:对于无触发器的事件函数或HTTP触发器函数,当您已为端云联调准备好所需的辅助资源和本地环境后,您需要在目标目录中启动一个新的终端,在该终端内执行以下命令调用本地函数。

    s proxied invoke

  • s proxied clean:清理端云联调的辅助资源和相关环境。

    执行示例:在项目目录中执行以下命令,清理端云联调所需的辅助资源和本地环境。

    s proxied clean