停止或终止正在运行的作业
调用工作空间作业 (例如 plan
,apply
或 destroy
) 后,您可能想要停止正在运行的作业或停止资源供应。 在停止或取消长时间运行的作业时,建议首先检查作业日志以确定作业是否实际卡住并且需要停止,或者是否正在执行需要时间才能完成的长时间运行的操作。
Schematics 提供了一些选项,以允许用户按停止操作的即时性和影响顺序 (gracefully) stop
,force-stop
或 terminate
运行作业。
停止作业类型
此表提供了停止作业类型的列表:
类型 | 描述 |
---|---|
stop |
向正在运行的 Terraform 命令发送中断信号。 这将执行与独立运行 Terraform 时相同的功能,其中 interrupt 是使用 cntl-C 或类似于 Terraform 发送的。 可以多次发送中断信号以通知 Terraform 停止。 Terraform 尝试在任何正在执行的资源操作完成并清除后停止正在运行的命令 (plan,apply,delete)。Schematics 等待命令完成。 在命令停止或完成后,将收集并保存状态和日志文件。 |
force-stop |
向正在运行的 Terraform 命令发送杀死信号。 如果您希望在看到停止命令 (中断) 未停止该命令后终止 Terraform 命令,请使用此命令。 可以根据需要多次发送 force-stop ,直到命令完成并停止作业为止。 如果它能够响应 kill 信号,Terraform 会立即停止运行命令和资源操作,并进行清理。 在命令停止或完成后,将收集并保存状态文件和日志文件。 |
terminate |
如果先前操作失败,请立即终止 Schematics 作业。 作业标记为 STOPPED ,工作空间已解锁。 将保留日志和 statefile 的任何先前保存的副本。 当作业终止时,将终止该作业,而不会在结束时单独收集任何文件。 此选项可能会导致日志文件和最新 statefile 更新的数据丢失,应谨慎使用。 |
在作业停止之前,您可以发送任意数目的这些停止信号。 通常,发送的信号不应超过三个。 如果 Terraform 未响应 stop
请求 (中断信号),那么您可以始终使用 force-stop
。 如果 force-stop
由于作业中的某个问题而未响应,那么您始终可以 terminate
要阻止的作业。
取消作业
如果作业处于 pending
状态,那么任何类型的停止请求都会导致作业取消。 如果作业处于 pending
状态,那么 Cancel
按钮会显示,此时可以直接取消该作业。 “取消”将从暂挂队列中除去作业。 如果同时启动 plan
,apply
或 destroy
执行,那么这将成为到 Terraform 的停止 (中断) 信号。
使用 UI 停止正在运行的作业
您可以执行以下步骤以使用控制台停止正在运行的工作空间作业。
-
从 工作空间仪表板中,选择与正在运行的作业相关的工作空间。
您可以在计划,应用或销毁执行期间停止或取消正在运行的作业。
-
单击 作业 选项卡以查看 停止,强制停止,终止和 取消 按钮。
停止作业选项 按钮 描述 停止 如果作业处于暂挂状态,那么从暂挂队列中除去该作业。 否则,向 Terraform 命令发送中断信号。 强制停止 向正在运行的 Terraform 命令发送杀死信号。 终止 终止 Schematics 作业,并将该作业标记为 STOPPED,然后解锁工作空间。 应谨慎使用此命令,因为它可能会导致数据丢失。 取消 如果作业处于 pending
状态,那么可以直接取消该作业时,将显示Cancel
按钮。 “取消”将从暂挂队列中除去作业。 如果同时启动plan
,apply
或destroy
执行,那么这最终将成为 Terraform 执行的中断信号。 -
在 输入选项以确认 文本框中输入
<option>
名称。 -
单击 确认选项 按钮。
使用 CLI 停止正在运行的作业
停止正在运行的 IBM Cloud Schematics 工作空间作业。
语法
ibmcloud schematics workspace job stop --id WORKSPACE_ID --job-id JOB_ID [--stop] [--force-stop] [--terminate] [--no-prompt]
命令选项
标志 | 必需/可选 | 描述 |
---|---|---|
--id 或 -i |
必需 | 要更新的工作空间标识。 |
--job-id 或 --jid |
必需 | 职位编号。 |
--stop |
可选 | 如果作业处于暂挂状态,那么从暂挂队列中除去该作业。 否则,向 Terraform 命令发送中断信号。 |
--force-stop 或 --fs |
可选 | 向引擎中的Terraform执行发送终止信号,试图立即停止执行。 |
--terminate 或 -t |
可选 | 突然终止引擎,将作业标记为已停止,并解锁工作空间。 未使用此标志保存数据。 |
--no-prompt |
可选 | 设置此标志以在不使用交互方式的情况下运行命令。 |
示例
ibmcloud schematics workspace job stop --id <WORKSPACE_ID> --stop --job-id <JOB_ID>
ibmcloud schematics workspace job stop --id <WORKSPACE_ID> --force-stop --job-id <JOB_ID>
ibmcloud schematics workspace job stop --id <WORKSPACE_ID> --terminate --job-id <JOB_ID>
通过 API 停止正在运行的作业
您可以使用以下 cURL 命令来停止 IBM Cloud Schematics 工作空间的正在运行的作业。
停止运行作业的语法
-
设置 REST 客户机 以执行 Schematics API。
-
使用语法和示例来停止正在运行的作业。
语法
curl -X DELETE https://schematics.cloud.ibm.com/v1/workspaces/<wks_id>/actions/{job_id}?signal=interrupt -H "Authorization: <iam_token>"
示例
curl -X DELETE https://schematics.cloud.ibm.com/v2/jobs/{job_id}?signal=interrupt -H "Authorization: <iam_token>"
-
使用此示例来
force-stop
正在运行的作业。示例
curl -X DELETE https://schematics.cloud.ibm.com/v1/workspaces/<wks_id>/actions/{job_id}?signal=force-stop -H "Authorization: <iam_token>"
-
使用此示例来
terminate
正在运行的作业。示例
curl -X DELETE https://schematics.cloud.ibm.com/v1/workspaces/<wks_id>/actions/{job_id}?signal=terminate -H "Authorization: <iam_token>"
有关停止正在运行的作业的更多信息,请参阅 停止并删除正在运行的作业 API。
查看 Schematics 作业详细信息
使用控制台中的 Schematics 作业页面来查找所有 Schematics 活动的历史记录,例如下载 template
,plan
和 apply
以及查看作业日志。 这些作业是在您运行模板时创建的。 您还可以查看处于 plan
中的资源计数,或者处于 已添加,已修改或 已销毁 状态的 apply
作业计数。 有关作业队列进程的更多信息,请参阅 Schematics 作业队列的执行进程。
在作业日志中,您可以看到如下消息:
-
**活动已触发。 等待日志 **。 这意味着作业处于暂挂状态,尚未处理。
-
您的作业已提交并处于队列中,位置 x 为 y。 此处
x
是作业在暂挂队列中的位置,y
是总计暂挂作业。 Schematics 后端中的可用资源同样分布到暂挂作业。 如果您正在运行大量作业,那么可以查看职位增加以及总数。