云沙箱计划变更
plan 命令是对云沙箱资源变更感知的命令:只读地展示本地 s.yaml 与线上资源的差异,不做任何创建、更新或删除。
命令解析
当执行命令plan -h/plan --help时,可以获取帮助文档。
参数解析
plan 没有自己的参数,所有输入都来自 Yaml 文件。
当前命令还支持部分全局参数(例如
-a/--access,--debug等),详情可参考 Serverless Devs 全局参数文档
操作案例
有资源描述文件(Yaml)时,可以直接执行s plan进行资源变更感知,效果如下:
region: cn-hangzhou
team:
teamName: dev
~ description: dev team => dev team (new)
plan: base
volumes:
- volumeName: data
volumeName: data
~ status: inactive => active
ossVolumeConfig:
bucketName: my-bkt
bucketPath: /data
apiKeys:
- apiKeyName: ci
apiKeyName: ci
+ expireTime: 2027-01-01T00:00:00Z
ipWhitelist:
- ipAddress: 1.2.3.0/24
description: office
~: 配置被修改
-: 删除配置
+: 添加配置
从上例可以看出执行 deploy 之后预期:
- team 的
description由dev team变更为dev team (new) - volume
data的status由inactive变更为active - apiKey
ci新增expireTime配置
注意事项
-
只比较 s.yaml 中声明过的字段。服务端的只读字段(
teamID/volumeID/apiKeyID/status的服务端派生值 /createdTime/apiKeyMask等)不会产生 diff 噪音;apiKeyValue更不会进入 diff。 -
线上资源不存在时视为待创建,diff 中表现为全部字段新增。Team 不存在时,其下的 volumes / apiKeys 一律按"待创建"处理,不再发起查询。
-
volumes/apiKeys在 s.yaml 中未声明时,对应段落不会出现在输出里。 -
plan不会提示线上多余的资源。要发现线上存在但 s.yaml 未声明的资源,执行s deploy(它会 warn 列出)或用volume list/apikey list查看。 -
Volume 存储配置的差异只是"提示"。
plan会如实显示ossVolumeConfig的差异,但deploy实际只能下发status—— 存储配置创建后不可修改,详见 Yaml 规范中的约束。
权限与策略说明
使用该命令时,推荐配置系统策略:AliyunFCReadOnlyAccess