一、操作场景
需要让弹性部署按请求量自动扩缩容,或希望在无请求时停止或暂停沙箱实例,以平衡业务延迟、并发和状态保留需求时,可参考这篇配置。
二、前提条件
·使用 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 应根据应用真实并发能力设置;过高可能增加单实例延迟或资源争用,过低则可能更早触发扩容。