弹性部署(Deployment)通过伸缩配置决定可用容量,通过空闲生命周期配置决定沙箱实例在无请求时如何处理。本文介绍如何使用
agr 命令配置伸缩与空闲生命周期,并在修改后验证配置结果。完成操作后,您可以创建支持缩容到零的弹性部署,并按需调整最小/最大实例数、单实例并发和空闲处理方式。操作场景
需要让弹性部署按请求量自动扩缩容,或希望在无请求时停止或暂停沙箱实例,以平衡业务延迟、并发和状态保留需求时,可参考本文配置。
前提条件
使用
agr 命令执行本文操作。创建弹性部署前需要准备沙箱工具 ID。
修改配置前需要获取目标弹性部署 ID。
参数说明
弹性部署的伸缩配置和空闲生命周期配置分别包含以下字段。
伸缩配置
字段 | 说明 |
MinInstanceCount | 需要维持的最小活跃沙箱实例数,必须大于或等于 0。设置为 0 时允许缩容到零。 |
MaxInstanceCount | 允许的最大活跃沙箱实例数,必须大于或等于 1,且不能小于 MinInstanceCount。 |
MaxInstanceRequestConcurrency | 单个沙箱实例可同时承载的请求数,必须大于或等于 1。 |
当现有容量无法承载新请求时,平台会在
MaxInstanceCount 允许的范围内按需启动或恢复沙箱实例。创建弹性部署时即使 MinInstanceCount 大于 0,接口也不会等待预热完成;后台会继续把活跃容量收敛到配置下限。空闲生命周期配置
字段 | 说明 |
IdleTimeoutSeconds | 从最后一个活跃弹性部署请求或连接结束后开始计算的空闲时长,单位为秒。 |
IdleAction | 空闲达到阈值后的操作,可选 STOP 或 PAUSE。STOP:释放沙箱实例,适合无状态服务和希望缩容到零的场景。下一次请求可能需要重新启动沙箱实例。PAUSE:保留沙箱实例状态,并在后续请求到来时恢复,适合需要保留 Workspace 或进程状态的场景。 |
注意事项
修改伸缩配置或生命周期配置时,会完整替换对应配置对象,不是局部更新;即使只调整一个值,也必须同时提供该配置组内的全部字段。
操作步骤
步骤一:创建弹性部署并配置伸缩与空闲生命周期
下面创建一个允许缩容到零的弹性部署:
export AGR_REGION='ap-shanghai'export TOOL_ID='sdt-replace-me'export DEPLOYMENT_NAME='elastic-service'agr deployment create \\--region "${AGR_REGION}" \\--deployment-name "${DEPLOYMENT_NAME}" \\--tool-id "${TOOL_ID}" \\--scaling-configuration '{"MinInstanceCount": 0,"MaxInstanceCount": 3,"MaxInstanceRequestConcurrency": 10}' \\--lifecycle-configuration '{"IdleTimeoutSeconds": 300,"IdleAction": "STOP"}'
从 CLI 响应中复制
DeploymentId,再设置后续步骤使用的环境变量:export DEPLOYMENT_ID='dpl-replace-me'
步骤二:查询创建后的配置
agr deployment get "${DEPLOYMENT_ID}" --region "${AGR_REGION}"
步骤三:修改伸缩配置
agr deployment update "${DEPLOYMENT_ID}" \\--region "${AGR_REGION}" \\--scaling-configuration '{"MinInstanceCount": 2,"MaxInstanceCount": 4,"MaxInstanceRequestConcurrency": 10}'
步骤四:修改空闲处理方式
方式一:空闲 10 分钟后暂停并保留状态
agr deployment update "${DEPLOYMENT_ID}" \\--region "${AGR_REGION}" \\--lifecycle-configuration '{"IdleTimeoutSeconds": 600,"IdleAction": "PAUSE"}'
方式二:空闲 5 分钟后停止并释放
agr deployment update "${DEPLOYMENT_ID}" \\--region "${AGR_REGION}" \\--lifecycle-configuration '{"IdleTimeoutSeconds": 300,"IdleAction": "STOP"}'
结果验证
完成创建或任一次修改后,执行以下命令查询最终配置:
agr deployment get "${DEPLOYMENT_ID}" --region "${AGR_REGION}"
确认结果满足以下条件:
弹性部署状态为
ACTIVE。伸缩配置中的
MinInstanceCount、MaxInstanceCount、MaxInstanceRequestConcurrency 与本次设置一致。空闲生命周期配置中的
IdleTimeoutSeconds、IdleAction 与本次设置一致。配置建议
延迟敏感服务可提高
MinInstanceCount,避免首次请求承担完整启动或恢复延迟。无状态、流量间歇的服务可设置
MinInstanceCount=0 并使用 STOP,以降低空闲资源占用。需要保留 Workspace 状态的服务可使用
PAUSE,并根据可接受的恢复时间设置空闲阈值。MaxInstanceCount 只是弹性部署配置上限,实际可用容量仍受账号配额、地域资源和沙箱工具启动条件影响。MaxInstanceRequestConcurrency 应根据应用真实并发能力设置;过高可能增加单实例延迟或资源争用,过低则可能更早触发扩容。