Skip to content

函数预留操作

provision 命令是进行函数预留操作的命令;主要包括预留配置的查看与更新等操作。

⚠️ 注意:预留资源会持续产生费用,如果不需要请及时释放资源

命令解析

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

provision list 命令

provision list 命令,是查看函数已发布的版本列表的命令。

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

参数解析

参数全称 参数缩写 Yaml 模式下必填 Cli 模式下必填 参数含义
region - 选填 必填 地域名称,取值范围参见函数计算开服地域
function-name - 选填 必填 函数名

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

操作案例

  • 有资源描述文件(Yaml)时,可以直接执行s provision list查看当前预留示例列表;
  • 纯命令行形式(在没有资源描述 Yaml 文件时),需要指定函数所在地区以及函数名称,例如s cli fc3 provision list --region cn-hangzhou --function-name test-function -a default

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

fc3-deploy-test:
  -
    alwaysAllocateCPU:      false
    alwaysAllocateCPU:      false
    current:                10
    currentError:
    functionArn:            acs:fc:cn-hangzhou:143**********149:functions/start-python-9fqu
    scheduledActions:       []
    target:                 10
    targetTrackingPolicies: []

provision put 命令

provision put 命令用于配置预留。

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

参数解析

参数全称 参数缩写 Yaml 模式下必填 Cli 模式下必填 参数含义
region - 选填 必填 地域名称,取值范围参见函数计算开服地域
function-name - 选填 必填 函数名
qualifier - 必填 必填 配置预留的版本,仅支持 LATEST 和别名
target - 必填 必填 预留实例数量,target 如果大于 0,配置函数预留,预留资源会持续产生费用,如果不需要请及时释放资源;target 如果等于 0,释放预留资源
always-allocate-cpu ac 选填 选填 一直给预留实例分配 CPU 资源(运行环境 CPU 取该值)
always-allocate-gpu ag 选填 选填 一直给预留实例分配 GPU 资源(运行环境 GPU 取该值)
scheduled-actions - 选填 选填 配置预留模式的定时修改限制
target-tracking-policies - 选填 选填 配置预留模式的根据指标修改限制

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

其中scheduledActions参数的数据结构为:

参数名 类型 是否必填 示例 描述
name string demoScheduler 定时任务的名称。
startTime string 2020-10-10T10:10:10Z 定时伸缩的起始生效时间。
endTime string 2020-12-10T10:10:10Z 定时伸缩的结束生效时间。
target number 10 预留的目标资源个数。
scheduleExpression string cron(0 30 8 * * *) 定时信息,支持两种格式。
- At expressions - "at(yyyy-mm-ddThh:mm:ss)":只调度一次,使用 UTC 格式。
- Cron expressions - "cron(0 0 20 * * *)":调度多次,使用标准 crontab 格式,如:每天 20:00 进行调度。

其中targetTrackingPolicies参数的数据结构为:

参数名 类型 是否必填 示例 描述
name string demoScheduler 定时任务的名称。
startTime string 2020-10-10T10:10:10Z 定时伸缩的起始生效时间。
endTime string 2020-12-10T10:10:10Z 定时伸缩的结束生效时间。
metricType string ProvisionedConcurrencyUtilization 追踪的指标类型。
-ProvisionedConcurrencyUtilization:预留模式实例并发度利用率。
- CPUUtilization:CPU 利用率。
- GPUMemUtilization:GPU 利用率。
metricTarget number(double) 0.6 指标的追踪值。
minCapacity number 10 缩容的最小值。
maxCapacity number 100 扩容的最大值。

操作案例

  • 有资源描述文件(Yaml)时,可以直接执行s provision put进行版本的发布,例如s provision put --qualifier release --target 10
  • 纯命令行形式(在没有资源描述 Yaml 文件时),需要指定函数所在地区以及函数名称,例如s cli fc3 provision put --region cn-hangzhou --function-name test-function --qualifier LATEST --target 10 -a default

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

fc3-deploy-test:
  functionArn:            acs:fc:cn-hangzhou:143**********149:functions/start-python-9fqu
  scheduledActions:       []
  target:                 10
  targetTrackingPolicies: []

provision get 命令

provision get 命令,是获取预留实例详情的命令。

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

参数解析

参数全称 参数缩写 Yaml 模式下必填 Cli 模式下必填 参数含义
region - 选填 必填 地域名称,取值范围参见函数计算开服地域
function-name - 选填 必填 函数名
qualifier - 必填 必填 配置预留的版本,仅支持 LATEST 和别名

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

操作案例

  • 有资源描述文件(Yaml)时,可以直接执行s provision get --qualifier qualifier获取预留实例详情;
  • 纯命令行形式(在没有资源描述 Yaml 文件时),需要指定函数所在地区以及函数名称,例如s cli fc3 provision get --region cn-hangzhou --function-name test-function --qualifier release -a default

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

fc3-deploy-test:
  alwaysAllocateCPU:      false
  alwaysAllocateGPU:      false
  current:                10
  currentError:
  functionArn:            acs:fc:cn-hangzhou:143**********149:functions/test-function
  scheduledActions:       []
  target:                 10
  targetTrackingPolicies: []

provision remove 命令

provision remove 命令,是用户删除指定预留资源的命令。

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

参数解析

参数全称 参数缩写 Yaml 模式下必填 Cli 模式下必填 参数含义
region - 选填 必填 地域名称,取值范围参见函数计算开服地域
function-name - 选填 必填 函数名
qualifier - 必填 必填 配置预留的版本,仅支持 LATEST 和别名
assume-yes y 选填 选填 在交互时,默认选择y

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

操作案例

  • 有资源描述文件(Yaml)时,可以直接执行s provision remove --qualifier release删除指定版本的预留配置;
  • 纯命令行形式(在没有资源描述 Yaml 文件时),需要指定函数所在地区以及函数名称,例如s cli fc3 provision remove --region cn-hangzhou --function-name test-function --qualifier LATEST -a default

权限与策略说明

  • provision listprovision get 命令所需要的权限策略: AliyunFCReadOnlyAccess

  • provision put 命令所需要的权限策略:

    {
      "Version": "1",
      "Statement": [
        {
          "Action": "fc:PutProvisionConfig",
          "Effect": "Allow",
          "Resource": [
            "acs:fc:{region}:{uid}:functions/{functionName}",
            "acs:fc:{region}:{uid}:functions/{functionName}/*"
          ]
        }
      ]
    }
    
  • provision remove 命令所需要的权限策略: AliyunFCReadOnlyAccess

    {
      "Version": "1",
      "Statement": [
        {
          "Action": "fc:DeleteProvisionConfig",
          "Effect": "Allow",
          "Resource": [
            "acs:fc:{region}:{uid}:functions/{functionName}",
            "acs:fc:{region}:{uid}:functions/{functionName}/*"
          ]
        }
      ]
    }