操作场景
本文介绍如何使用
agr 命令行工具查询、修改和删除弹性部署(Deployment)。完成操作后,您可以按条件列出弹性部署、查看单个弹性部署的信息、替换扩缩容与生命周期配置、更新标签,并在确认不再需要时删除弹性部署。前提条件
已具备可执行
agr 命令的环境。已获取目标弹性部署的 ID,下文使用
${DEPLOYMENT_ID} 表示。已确定目标弹性部署所在地域,下文使用
${AGR_REGION} 表示。执行修改或删除前,请确认目标弹性部署的当前状态。
操作步骤
查询弹性部署
查询单个弹性部署
1. 执行以下命令查询单个弹性部署:
agr deployment get "${DEPLOYMENT_ID}" --region "${AGR_REGION}"
2. 如需结构化输出,可追加
-o json:agr deployment get "${DEPLOYMENT_ID}" \\--region "${AGR_REGION}" \\-o json
列出弹性部署并过滤
1. 执行以下命令列出当前地域的弹性部署:
agr deployment list --region "${AGR_REGION}"
2. 如需按条件过滤,使用
--filters:agr deployment list \\--region "${AGR_REGION}" \\--filters '[{"Name": "tool-id","Values": ["sdt-a1b2c3d4"]},{"Name": "status","Values": ["ACTIVE"]}]'
3.
--filters 支持的过滤项如下表所示。过滤项 | 说明 |
deployment-id | 按弹性部署 ID 过滤 |
deployment-name | 按弹性部署名称过滤 |
deployment-name-like | 按弹性部署名称模糊匹配过滤 |
tool-id | 按沙箱工具 ID 过滤 |
status | 按状态过滤,支持 ACTIVE、DELETING、DELETE_FAILED |
tag-key | 按标签键过滤 |
tag-value | 按标签值过滤 |
tag:<key> | 按指定标签键的值过滤 |
多个过滤项之间为 AND 关系,同一过滤项内的多个
Values 为 OR 关系。实例数、请求量、并发、错误和延迟属于监控数据,不包含在查询结果中。修改弹性部署
替换扩缩容与生命周期配置
1. 执行以下命令:
agr deployment update "${DEPLOYMENT_ID}" \\--region "${AGR_REGION}" \\--scaling-configuration '{"MinInstanceCount": 1,"MaxInstanceCount": 20,"MaxInstanceRequestConcurrency": 100}' \\--lifecycle-configuration '{"IdleTimeoutSeconds": 600,"IdleAction": "STOP"}'
2. 扩缩容配置和生命周期配置中,每个提供的对象都会完整替换对应配置。
更新标签
1. 使用非空数组全量替换标签:
agr deployment update "${DEPLOYMENT_ID}" \\--region "${AGR_REGION}" \\--tags '[{"Key": "env","Value": "production"}]'
2. 使用空数组清空全部标签:
agr deployment update "${DEPLOYMENT_ID}" \\--region "${AGR_REGION}" \\--tags '[]'
3.
--tags 的取值语义如下表所示。取值 | 行为 |
省略 | 标签保持不变 |
[] | 清空全部标签 |
非空数组 | 全量替换为数组中的标签 |
DeploymentName、ToolId、AffinityConfiguration 不可修改。修改命令返回成功仅表示配置已保存,运行态会异步收敛。删除弹性部署
警告:
弹性部署删除后不可恢复,且会处理所有受管沙箱实例,请在确认不再需要后执行。
发起删除
1. 执行默认删除命令,命令在服务端接受请求后返回:
agr deployment delete "${DEPLOYMENT_ID}" --region "${AGR_REGION}"
2. 如需等待资源真正消失,可追加
--wait:agr deployment delete "${DEPLOYMENT_ID}" \\--region "${AGR_REGION}" \\--wait
3.
--wait 会轮询直到资源消失;删除失败时返回 StatusReason。删除行为说明
进入
DELETING 状态后,弹性部署会拒绝新请求并停止签发 Token。首次执行删除只表示删除流程已可靠开始,不代表删除已经完成。
在
DELETING 状态下,非并发的重复删除会幂等成功。DELETE_FAILED 不会自动重试,需要再次执行删除命令。删除会处理所有受管沙箱实例,并固定使用进入
DELETING 状态时的 IdleAction。IdleAction | 删除时的处理 |
STOP | 释放沙箱实例。 |
PAUSE | 保留已暂停的沙箱实例,用户可通过标准沙箱实例 API 管理。 |
软删除完成后,弹性部署会从查询结果和列表中消失,名称同时释放。删除不可恢复,同名重建会获得新的 ID。
结果验证
查询成功:
get 返回目标弹性部署的信息;list 返回符合条件的弹性部署列表。修改成功:命令返回成功,表示配置已保存;运行态异步收敛后,可通过
get 查看最新配置。删除成功:默认命令返回表示服务端已接受请求;使用
--wait 时,命令返回表示资源已消失,若为 DELETE_FAILED 会返回 StatusReason,需再次删除。相关操作
查询单个弹性部署:执行
agr deployment get "${DEPLOYMENT_ID}" --region "${AGR_REGION}"。按条件查询弹性部署:执行
agr deployment list --region "${AGR_REGION}",过滤项参见 列出弹性部署并过滤。