翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
チュートリアル: のリッスンAWS Batch EventBridge
このチュートリアルでは、AWS Lambdaリッスンする関数AWS Batchジョブイベントとそれを書き出す CloudWatch ログストリームをログします。
前提条件
このチュートリアルでは、コンピューティング作業環境と、ジョブを受け付けることができるジョブキューがあることを前提としています。イベントをキャプチャするコンピューティング作業環境とジョブキューがなければ、「AWS Batch の使用の開始」のステップに従って作成します。このチュートリアルの最後に、オプションでこのジョブキューにジョブを送信してLambda 関数が正しく設定されていることをテストできます。
ステップ 1: Lambda 関数を作成する
この手順では、AWS Batch イベントストリームメッセージのターゲットとなるシンプルな Lambda 関数を作成します。
ターゲットの Lambda 関数を作成するには
AWS Lambda コンソールを (https://console.aws.amazon.com/lambda/
) 開きます。 -
[関数の作成] を選択し、[一から作成] を選択します。
-
[Function name] (関数名) に batch-event-stream-handler と入力します。
-
[Runtime] (ランタイム) では、[Python 3.8] を選択します。
-
[Create function] を選択します。
-
左コードソースセクションで、以下の例に一致するようにサンプルコードを編集します。
import json def lambda_handler(event, _context): # _context is not used del _context if event["source"] != "aws.batch": raise ValueError("Function only supports input from events with a source type of: aws.batch") print(json.dumps(event))
これは、AWS Batch から送信されたイベントを印刷するシンプルな Python 3.8 関数です。すべてが正しく設定されると、このチュートリアルの最後に、 CloudWatch この Lambda 関数に関連付けられているログストリームをログに記録します。
-
[Deploy] (デプロイ) をクリックします。
ステップ 2: イベントルールを登録
このセクションでは、 EventBridge から来るジョブイベントをキャプチャするイベントルールAWS Batchリソースの使用料金を見積もることができます。このルールでは、それが定義されているアカウント内の AWS Batch から送信されるすべてのイベントがキャプチャされます。ジョブメッセージ自体に、イベントソースに関する情報 (イベントソースの送信先ジョブキューの情報など) が含まれています。この情報を使用して、プログラムでイベントをフィルタリングおよびソートできます。
注記
... を使用した場合AWS Management Consoleイベントルールを作成すると、コンソールは自動的に EventBridge を使用して Lambda 関数を呼び出します。ただし、AWS CLI を使用してイベントルールを作成する場合は、この権限を明示的に付与する必要があります。詳細については、次を参照してください。イベントとイベントパターンのアマゾン EventBridge ユーザーガイド。
を作成するには EventBridge ルール
アマゾンを開く EventBridge コンソールhttps://console.aws.amazon.com/events/
。 -
ナビゲーションペインで [Rules] (ルール) を選択します。
-
[Create rule] (ルールの作成) を選択します。
-
ルールの名前と説明を入力します。
ルールには、同じリージョン内および同じイベントバス上の別のルールと同じ名前を付けることはできません。
-
[Event bus] (イベントバス) では、このルールに関連付けるイベントバスを選択します。このルールをアカウントからのイベントと一致させるには、AWS のデフォルトのイベントバスを選択します。アカウントの AWS サービスがイベントを発行すると、常にアカウントのデフォルトのイベントバスに移動します。
-
[Rule type] (ルールタイプ) では、[Rule with an event pattern] (イベントパターンを持つルール) を選択します。
-
[Next] (次へ) を選択します。
-
[Event source] (イベントソース) では、[Other] (その他) を選択します。
-
を使用する場合イベントパターン、選択カスタムパターン (JSON エディター)。
-
次のイベントパターンをテキストエリアに貼り付けます。
{ "source": [ "aws.batch" ] }
このルールは、すべての AWS Batch グループとすべての AWS Batch イベントに適用されます。または、より具体的なルールを作成し、一部の結果をフィルタで除外することもできます。
-
[Next] (次へ) を選択します。
-
[Target types] (ターゲットタイプ) では、AWS[services] (サービス) を選択します。
-
を使用する場合ターゲットを選択する、選択Lambda 関数、Lambda 関数を選択します。
-
(オプション) [Additional settings] (追加設定) では、以下を実行します。
-
[Maximum age of event] (最大イベント有効期間) に、1 分 (00:01) から 24 時間 (24:00) の間の値を入力します。
-
Retry attempts(再試行) で、0~185 の数値を入力します。
-
を使用する場合デッドレターキューで、標準 Amazon SQS キューをデッドレターキューとして使用するかどうかを選択します。 EventBridge は、このルールに一致するイベントがターゲットに正常に配信されなかった場合に、そのイベントをデッドレターキューに送信します。次のいずれかを実行します。
-
デッドレターキューを使用しない場合は、None(なし) を選択します。
-
選択現在の Amazon SQSキューを選択してくださいAWSデッドレターキューとして使用するものドロップダウンから使用するキューを選択します。
-
Select an Amazon SQS queue in an other AWS account as a dead-letter queue(他の アカウントの Amazon SQS キューをデッドレターキューとして選択) を選択し、使用するキューの ARN を入力します。許可を付与するリソースベースのポリシーをそのキューにアタッチする必要があります EventBridge メッセージを送信する権限。詳細については、次を参照してください。デッドレターキューへのアクセス許可の付与のアマゾン EventBridge ユーザーガイド。
-
-
-
[Next] (次へ) を選択します。
-
(オプション) ルールに 1 つ以上のタグを入力します。詳細については、次を参照してください。アマゾン EventBridge タグのアマゾン EventBridge ユーザーガイド。
-
[Next] (次へ) を選択します。
-
ルールの詳細を確認し、[Create rule] (ルールの作成) を選択します。
ステップ 3: 設定をテストする
これでテストできます EventBridge ジョブキューにジョブを送信して設定します。すべてが適切に設定されている場合、Lambda 関数がトリガーされ、 CloudWatch 関数のログストリームをログに記録します。
設定をテストするには
を開くAWS Batchコンソールhttps://console.aws.amazon.com/batch/
。 -
新しい AWS Batch ジョブを送信します。詳細については、「ジョブの送信」を参照してください。
を開く CloudWatch コンソールhttps://console.aws.amazon.com/cloudwatch/
。 -
ナビゲーションペインで、[Logs] (ログ) を選択して Lambda 関数 (例えば、[/aws/lambda/] [
my-function など
)] のロググループを選択します。 -
イベントデータを表示するログ ストリーミングを選択します。