预留 provision
Provision 命令
provision
命令是进行函数预留操作的命令;主要包括预留配置的查看与更新等操作。
⚠️ 注意:预留资源会持续产生费用,如果不需要请及时释放资源
命令解析
当执行命令provision -h
/provision --help
时,可以获取帮助文档。
在该命令中,包括了三个子命令:
provision list 命令
provision list
命令,是查看服务已发布的版本列表的命令。
当执行命令provision list -h
/provision list --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 | - | 选填 | 必填 | 服务名 |
qualifier | 选填 | 选填 | 配置预留的版本,仅支持服务的 LATEST 和别名 | |
table | 选填 | 是否以表格形式输出 |
当前命令还支持部分全局参数(例如
-a/--access
,--debug
等),详情可参考 Serverless Devs 全局参数文档
操作案例
- 有资源描述文件(Yaml)时,可以直接执行
s provision list
查看当前预留示例列表; - 纯命令行形式(在没有资源描述 Yaml 文件时),需要指定服务所在地区以及服务名称,例如
s cli fc provision list --region cn-hangzhou --service-name fc-deploy-service
;
上述命令的执行结果示例:
如果指定了--table
参数,输出示例:
provision put 命令
provision put
命令用于配置预留。
当执行命令provision put -h
/provision put --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 | - | 选填 | 必填 | 版本描述 |
config | 选填 | 选填 | 定时伸缩与弹性伸缩配置 | |
qualifier | 必填 | 必填 | 配置预留的版本,仅支持服务的 LATEST 和别名 | |
enable-idle-billing | 选填 | 选填 | 开启闲置计费。默认不开启 | |
target | 选填 | 选填 | 预留实例数量,target 如果大于 0,配置函数预留,预留资源会持续产生费用,如果不需要请及时释放资源;target 如果等于 0,释放预留资源;--target 参数的权重大于--config 中的target ,即如果config 的配置文件中和参数指定同时存在target 配置,优先使用参数中的target 配置 |
当前命令还支持部分全局参数(例如
-a/--access
,--debug
等),详情可参考 Serverless Devs 全局参数文档
操作案例
- 有资源描述文件(Yaml)时,可以直接执行
s provision put
进行版本的发布,例如s provision put --qualifier release --target 1
; - 纯命令行形式(在没有资源描述 Yaml 文件时),需要指定服务所在地区以及服务名称,例如
s cli fc provision put --region cn-hangzhou --service-name fc-deploy-service --function-name fc-deploy-function --qualifier release --target 1 -h
;
上述命令的执行结果示例:
💡 删除预留:删除预留的方法,可以通过
s provision put
命令,进行删除,只需要将target
调整为 0 即可。例如s provision put --qualifier release --target 0
⚠️
--target
参数的权重大于--config
中的target
,即如果config
的配置文件中和参数指定同时存在target
配置,优先使用参数中的target
配置 阿里云函数计算配置预留拥有多种形式,单纯通过target
参数进行控制的只是非常简单的配置,除此之外还支持定时伸缩与弹性伸缩配置方法,此时就需要对--config
参数进行配置,--config
参数识别的是一个 JSON 文件,基础格式如下:
参数内容详情:
参数名 | 类型 | 是否必填 | 示例 | 描述 |
---|---|---|---|---|
target | number | 是 | 1 | 预留的目标资源个数 |
scheduledActions | list[object] | 否 | 定时伸缩策略:通过定时伸缩策略您可以更加灵活地配置预留的函数实例,在指定时间将预留的函数实例量设定成需要的值,使函数实例量更好地贴合业务的并发量。 | |
targetTrackingPolicies | list[object] | 否 | 指标伸缩策略:根据函数实例并发利用率的情况每分钟对预留资源进行一次伸缩。 - 当指标超过追踪值 metricTarget 时,开始以积极的策略扩容预留模式的函数实例量,以使得指标值恢复到追踪值 metricTarget 附近。 - 当指标低于追踪值 metricTarget 时,开始以保守的策略缩容预留模式的函数实例量,以使得指标值逐渐恢复到追踪值 metricTarget 附近。 当您在系统中设置了伸缩最大值和最小值时,预留的函数实例量会在最大值与最小值之间进行伸缩,超出最大值时将停止扩容,低于最小值时将停止缩容。 |
其中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 | 追踪的指标类型。 |
metricTarget | number(double) | 是 | 0.6 | 指标的追踪值。 |
minCapacity | number | 是 | 10 | 缩容的最小值。 |
maxCapacity | number | 是 | 100 | 扩容的最大值。 |
provision get 命令
provision get
命令,是获取预留实例详情的命令。
当执行命令provision get -h
/provision get --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 | 必填 | 必填 | 配置预留的版本,仅支持服务的 LATEST 和别名 |
当前命令还支持部分全局参数(例如
-a/--access
,--debug
等),详情可参考 Serverless Devs 全局参数文档
操作案例
- 有资源描述文件(Yaml)时,可以直接执行
s provision get --qualifier qualifier
获取预留实例详情; - 纯命令行形式(在没有资源描述 Yaml 文件时),需要指定服务所在地区以及服务名称,例如
s cli fc provision get --region cn-hangzhou --service-name fc-deploy-service --function-name fc-deploy-function --qualifier release
;
上述命令的执行结果示例:
权限与策略说明
-
provision list
与provision get
命令所需要的权限策略:AliyunFCReadOnlyAccess
-
provision put
命令所需要的权限策略: