AWS DataSync タスクの実行が成功または失敗したタイミングを把握したいです。
解決策
DataSync タスクの実行タスクが SUCCESS または ERROR に変更された際に、Amazon Simple Notification Service (Amazon SNS) がメール通知を送信するように設定を行います。
前提条件 DataSync タスクを作成する必要があります。
Amazon SNS トピックを作成し、メールをそのトピックにサブスクライブする
次の手順を実行します。
- Amazon SNS コンソールを開きます。
- ナビゲーションペインで [トピック] を選択します。
- [トピックを作成] を選択します。
- [名前] にトピックの名前を入力します。
- [トピックを作成] を選択します。
- 該当するトピックのページで [購読] タブを選択します。
- [サブスクリプションを作成] を選択します。
- [サブスクリプションの作成] ページで次の操作を行います。
[プロトコル] に [メール] を選択します。
[エンドポイント] に通知を受信するメールアドレスを入力します。
- [サブスクリプションを作成] を選択します。
- 受信したサブスクリプション確認メッセージで、[サブスクリプションの確認] リンクをクリックします。
DataSync 用の EventBridge ルールを作成し、SNS トピックをターゲットとして設定する
次の手順を実行します。
- EventBridge コンソールを開きます。
- ナビゲーションペインで [ルール] を選択します。
- [ルールを作成] を選択します。
- ルールの [名前] と説明を入力します。
- [イベントパターンを構築] の [イベント] セクションで [AWS イベントまたは EventBridge パートナーイベント] を選択します。
- [イベントパターン] で [パターンフォームを使用] を選択します。
- [イベントソース] で [AWS サービス] を選択します。
- [AWS サービス] で [DataSync] を選択します。
- [イベントタイプ] で、[DataSync タスクの実行状態変更] を選択します。
- [イベントパターン] に次の JSON を入力すると、ステータスが SUCCESS または ERROR であるすべてのタスク実行に関する通知を受信するようになります。
{
"source": [
"aws.datasync"
],
"detail-type": [
"DataSync Task Execution State Change"
],
"detail": {
"State": [
"SUCCESS",
"ERROR"
]
}
}
- [ターゲットの選択] で次の手順を実行します。
[ターゲット] で [SNS トピック] を選択します。
[トピック] で作成したトピックを選択します。
- [作成] を選択します。
DataSync タスクを開始してメール通知をテストする
DataSync タスク実行ステータスのメール通知をテストするには、まずタスクを作成してからそのタスクを開始します。
タスクを開始すると、DataSync タスクの実行ステータスに関するメール通知が届きます。タスクの実行が成功した場合は、次のような SUCCESS 通知メッセージが表示されます。
{
"version": "0",
"id": "example0-c014-d9e9-d7ac-44f00d5d1200",
"detail-type": "DataSync Task Execution State Change",
"source": "aws.datasync",
"account": "111122223333",
"time": "2019-01-23T12:35:26Z",
"region": "us-west-2",
"resources": ["arn:aws:sync:us-west-2:9111122223333:task/task-example23d67d5be5/execution/exec-example316440271f"],
"detail": {
"State": "SUCCESS"
}
}
1 つの DataSync タスクに関する通知のみを受信する
1 つの DataSync タスクのみに関する通知を受信する場合は、EventBridge 比較演算子を使用してタスクの ARN の部分一致を検索します。
たとえば次の JSON では、タスクの ARN を prefix の値として指定しています。
{
"detail-type": ["DataSync Task Execution State Change"],
"source": ["aws.datasync"],
"resources": [{
"prefix": "arn:aws:datasync:REGION:ACCOUNT-ID:task/TASK-ID/execution/exec-"
}],
"detail": {
"State": ["SUCCESS", "ERROR"]
}
}
複数の DataSync タスクに関する通知を受信する
プレフィックスパラメータを使用する
複数のタスクに関する通知を受け取る場合は、各タスクに prefix パラメータを含めます。たとえば、次の JSON では 2 つのタスクに関する通知を有効にしています。
{
"source": ["aws.datasync"],
"detail-type": ["DataSync Task Execution State Change"],
"resources": [{
"prefix": "arn:aws:datasync:REGION:ACCOUNT-ID:task/TASK1-ID/execution/exec-"
}, {
"prefix": "arn:aws:datasync:REGION:ACCOUNT-ID:task/TASK2-ID/execution/exec-"
}],
"detail": {
"State": ["SUCCESS", "ERROR"]
}
}
注: 実際のものでそれぞれ、REGION を AWS リージョンに、ACCOUNT-ID を AWS アカウント ID に置き換えます。さらに、TASK1-ID および TASK2-ID を実際のタスクの ID に置き換えます。
ワイルドカードパラメータを使用する
ワイルドカードパラメータを使用して、特定のタスクに関する通知を受信することもできます。たとえば次の JSON では、* 文字の前に指定された ARN プレフィックスが付いているすべてのタスクに関する通知がアクティブになります。
{
"detail-type": ["DataSync Task Execution State Change"],
"source": ["aws.datasync"],
"resources": [{
"wildcard": "arn:aws:datasync:REGION:ACCOUNT-ID:task/TASK-ID/execution/exec-*"
}],
"detail": {
"State": ["SUCCESS", "ERROR"]
}
}
注: 実際のものでそれぞれ、REGION をリージョンに、ACCOUNT-ID をアカウント ID に、TASK-ID をタスク ID に置き換えます。
少数の複数タスクに関する通知のみを受信する場合は、次の JSON を使用します。
{
"detail-type": ["DataSync Task Execution State Change"],
"source": ["aws.datasync"],
"resources": [{
"wildcard": "*/TASK1-ID/execution/exec-*"
}, {
"wildcard": "*/TASK2-ID/execution/exec-*"
}],
"detail": {
"State": ["SUCCESS", "ERROR"]
}
}
注: TASK1-ID および TASK2-ID を実際のタスクの ID に置き換えます。
関連情報
Amazon EventBridge を使用してイベントを監視する
Amazon EventBridge でイベントに反応するルールを作成する