AWS Batch のジョブキューからすべての RUNNABLE (実行可能) なジョブをキャンセルする方法を教えてください。

最終更新日: 2022 年 7 月 14 日

ジョブキュー内の RUNNABLE 状態にあるすべての AWS Batch ジョブをキャンセルしたいと思います。その方法を教えてください。

簡単な説明

AWS マネジメントコンソールでは、ジョブキューからのAWS Batch ジョブを一度に 1 個だけしかキャンセルまたは終了できません。ジョブキューからの AWS Batch ジョブを複数個キャンセルまたは終了するには、AWS Command Line Interface (AWS CLI) を使用する必要があります。

ジョブキュー内のRUNNABLE 状態にあるすべてのジョブをキャンセルするには、以下の手順に従います。

注: 次の手順は Linux または macOS 環境でのみ使用できます。

解決方法

注: AWS CLI コマンドの実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください

1.    次の list-jobs コマンドを実行して、ジョブキュー内の RUNNABLE 状態のすべてのジョブのリストを返します。

重要: myJOBQueue をお使いのジョブキュー名に置き換えてください。

$aws batch list-jobs --job-queue myJOBQueue --job-status runnable --output text --query "jobSummaryList[*].[jobId]"

次に、RUNNABLE 状態でスタックしている 3 つのジョブを含む list-jobs コマンド出力の例を示します。

----------------------------------------------------------------------------------------
"0cffddb0-8bfa-4ba4-86ba-c5cad59e4529"
"884d8bdf-6192-4d4c-ac85-c51093460a01"
"236670e3-127a-4fe1-afd6-3f21cf1fe02e"
----------------------------------------------------------------------------------------

2.    ジョブキュー内の RUNNABLE 状態でスタックしているすべての AWS Batch ジョブをキャンセルするには、次の bash スクリプトを実行します。

重要: myJOBQueue をお使いのジョブキュー名に置き換えてください。

ジョブをキャンセルする bash スクリプトの例

#! /bin/bash
for i in $(aws batch list-jobs --job-queue myJOBQueue --job-status runnable --output text --query "jobSummaryList[*].[jobId]")
do
  echo "Cancel Job: $i"
  aws batch cancel-job --job-id $i --reason "Cancelling job."
  echo "Job $i canceled"
done

注: ジョブキューにあるすべての RUNNING ジョブを始めとするすべてのジョブを終了するには、次の bash スクリプトを実行します。

ジョブキュー内のすべての AWS Batch ジョブを終了してキャンセルする bash スクリプトの例

#! /bin/bash
for state in SUBMITTED PENDING RUNNABLE STARTING RUNNING
do 
    for job in $(aws batch list-jobs --job-queue myJOBQueue --job-status $state --output text --query "jobSummaryList[*].[jobId]")
    do 
        echo -ne "Stopping job $job in state $state\t"
        aws batch terminate-job --reason "Terminating job." --job-id $job && echo "Done." || echo "Failed."
    done
done

重要: この bash スクリプトを実行すると、STARTING 状態に進んでいないキュー内のすべてのジョブがキャンセルされます。


この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?