

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS DevOps エージェントと Amazon EventBridge の統合
<a name="configuring-integrations-and-knowledge-integrating-devops-agent-into-event-driven-applications-using-amazon-eventbridge-index"></a>

調査および緩和ライフサイクル中に発生するイベントを使用して、 AWS DevOps エージェントをイベント駆動型アプリケーションと統合できます。 AWS DevOps エージェントは、調査または緩和の状態が変化したときにイベントを Amazon EventBridge に送信します。その後、これらのイベントに基づいてアクションを実行する EventBridge ルールを作成できます。

たとえば、次のアクションを実行するルールを作成できます。
+ 調査が完了したら、 AWS Lambda 関数を呼び出して調査結果を処理します。
+ 調査が失敗またはタイムアウトしたときに Amazon SNS 通知を送信します。
+ 新しい調査の作成時にチケット発行システムを更新します。
+ 緩和アクションが完了したら、 AWS Step Functions ワークフローを開始します。

## EventBridge が AWS DevOps エージェントイベントをルーティングする方法
<a name="how-eventbridge-routes-aws-devops-agent-events"></a>

AWS DevOps Agent は EventBridge のデフォルトのイベントバスにイベントを送信します。その後、EventBridge は作成したルールに対してイベントを評価します。イベントがルールのイベントパターンと一致すると、EventBridge は指定されたターゲットにイベントを送信します。

次の図は、EventBridge が AWS DevOps エージェントイベントをルーティングする方法を示しています。

![Amazon EventBridge は AWS 、ソースからルールを介して AWS サービスなどのターゲットにイベントをルーティングします。](https://docs.aws.amazon.com/ja_jp/devopsagent/latest/userguide/images/eventbridge-integration-how-it-works.png)


1. AWS DevOps Agent は、調査または緩和ライフサイクルの状態が変更されたときに EventBridge のデフォルトイベントバスにイベントを送信します。

1. EventBridge は、作成したルールに対してイベントを評価します。

1. イベントがルールのイベントパターンと一致する場合、EventBridge はルールで指定されたターゲットにイベントを送信します。

## AWS DevOps エージェントイベント
<a name="aws-devops-agent-events"></a>

AWS DevOps エージェントは、以下のイベントを EventBridge に送信します。すべてのイベントはソース を使用します`aws.aidevops`。

AWS DevOps エージェントは、調査の緩和フェーズを含め、調査のためにこれらのイベントを発行します。インシデント防止評価やカスタムエージェント呼び出しなど、他の種類のエージェント作業は、これらのイベントを出力しません。

各イベントの `time`フィールドは、EventBridge がイベントを受信した時刻ではなく、調査または緩和策が最後に更新された時刻です。値のないフィールドは、 `detail`ではなく から省略されます`null`。

### サポートされている調査イベント
<a name="supported-investigation-events"></a>


| detail-type | 説明 | 
| --- | --- | 
| Investigation Created | エージェントスペースに調査が作成されました。 | 
| Investigation Priority Updated | 調査の優先度が変更されました。 | 
| Investigation In Progress | 調査がアクティブな分析を開始しました。 | 
| Investigation Completed | 調査は検出結果で正常に終了しました。 | 
| Investigation Failed | 調査でエラーが発生しました。完了できませんでした。 | 
| Investigation Timed Out | 調査が最大許容期間を超えました。 | 
| Investigation Cancelled | 調査は完了前にキャンセルされました。 | 
| Investigation Pending Triage | 調査は、アクティブな分析が開始される前にトリアージを待っています。 | 
| Investigation Linked | 調査が関連するインシデントまたはチケットにリンクされました。 | 
| Investigation Skipped | スキルで定義されたスキップ基準に一致したため、調査はスキップされました。イベントには、調査がスキップされた理由は含まれません。 | 

### サポートされている緩和イベント
<a name="supported-mitigation-events"></a>


| detail-type | 説明 | 
| --- | --- | 
| Mitigation In Progress | 緩和アクションが開始されました。 | 
| Mitigation Completed | 緩和アクションが正常に終了しました。 | 
| Mitigation Failed | 緩和アクションでエラーが発生し、完了できませんでした。 | 
| Mitigation Timed Out | 緩和アクションが最大許容期間を超えました。 | 
| Mitigation Cancelled | 緩和アクションは完了前にキャンセルされました。 | 

詳細なフィールドの説明とイベント例については、「」を参照してください[AWS DevOps エージェントイベントの詳細リファレンス](integrating-devops-agent-into-event-driven-applications-using-amazon-eventbridge-devops-agent-events-detail-reference.md)。

## AWS DevOps エージェントイベントに一致するイベントパターンの作成
<a name="creating-event-patterns-that-match-aws-devops-agent-events"></a>

EventBridge ルールは、イベントパターンを使用してイベントを選択し、ターゲットにルーティングします。イベントパターンは、処理するイベントの構造と一致します。イベントパターンを作成して、イベントフィールドに基づいて AWS DevOps エージェントイベントをフィルタリングします。

次の例は、一般的なユースケースのイベントパターンを示しています。

**すべての AWS DevOps エージェントイベントを照合する**

次のイベントパターンは、 AWS DevOps エージェントからのすべてのイベントに一致します。

```
{
  "source": ["aws.aidevops"]
}
```

**調査イベントのみの一致**

次のイベントパターンでは、プレフィックス一致を使用して、調査ライフサイクルイベントのみを選択します。

```
{
  "source": ["aws.aidevops"],
  "detail-type": [{"prefix": "Investigation"}]
}
```

**完了イベントと失敗イベントのみを一致させる**

次のイベントパターンは、完了したまたは失敗した調査と緩和策のイベントと一致します。

```
{
  "source": ["aws.aidevops"],
  "detail-type": [
    "Investigation Completed",
    "Investigation Failed",
    "Mitigation Completed",
    "Mitigation Failed"
  ]
}
```

**特定のエージェントスペースのイベントを照合する**

次のイベントパターンは、特定のエージェントスペースからのイベントに一致します。

```
{
  "source": ["aws.aidevops"],
  "detail": {
    "metadata": {
      "agent_space_id": ["your-agent-space-id"]
    }
  }
}
```

イベントパターンの詳細については、*Amazon EventBridge ユーザーガイド*の「[Amazon EventBridge イベントパターン](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html)」を参照してください。

## 調査または緩和の概要の取得
<a name="retrieving-an-investigation-or-mitigation-summary"></a>

`Completed` イベントは、エージェントが作成した概要を識別しますが、概要テキストは含まれません。概要はジャーナルレコードとして保存されます。これを読み取るには、イベントから取得した値を使用して [ListJournalRecords](https://docs.aws.amazon.com/devopsagent/latest/APIReference/API_ListJournalRecords.html) オペレーションを呼び出します。


| イベントの値 | 「ListJournalRecords」パラメータ | 
| --- | --- | 
| detail.metadata.agent\_space\_id | agentSpaceId (必須) | 
| detail.metadata.execution\_id | executionId (必須) | 
| イベントにない | recordType — 調査の概要investigation\_summary\_md、または緩和の概要mitigation\_summary\_mdに使用します。 | 

`ListJournalRecords` は [JournalRecord](https://docs.aws.amazon.com/devopsagent/latest/APIReference/API_JournalRecord.html) オブジェクトのリストを返します。実行には、同じタイプの複数のサマリーレコードを含めることができます。`recordId` に一致するレコードを選択し`detail.data.summary_record_id`、その を読み取ります`content`。 AWS DevOps エージェントには、ID で単一のジャーナルレコードを返すオペレーションはありません。

でビルドする前に、次の点に注意してください`summary_record_id`。
+ フィールドは、実行の概要レコードが書き込まれた場合にのみ存在します。`Completed` イベントがないということは、その実行に概要が利用できないことを意味します。そのため、イベントがないときは処理する必要があります。
+ `Failed`、`Timed Out`、および `Cancelled`イベントには含まれません。
+ 概要を取得するには、イベントコンシューマーを実行するアカウントの `aidevops:ListJournalRecords` アクセス許可が必要です。

権限の詳細については、「[DevOps エージェント IAM アクセス許可](aws-devops-agent-security-devops-agent-iam-permissions.md)」を参照してください。

**CLI AWS を使用して概要を取得する**

次のコマンドは、実行の調査概要レコードを一覧表示します。

```
aws devops-agent list-journal-records \
  --agent-space-id e5f6g7h8-9012-34ab-cdef-example00000 \
  --execution-id b2c3d4e5-6789-01ab-cdef-example22222 \
  --record-type investigation_summary_md
```

** AWS Lambda で完了した調査を処理する**

次の Python 関数は、ルールターゲットがこれらのイベントを処理する 1 つの方法を示しています。これはサンプルであり、必要な実装ではありません。EventBridge は他のターゲットタイプをサポートし、ターゲットはイベントの処理を決定します。この例では、完了した調査の概要を読み取り、概要を含まないイベントを無視します。

```
import boto3

devops_agent = boto3.client("devops-agent")

INVESTIGATION_SUMMARY = "investigation_summary_md"
MITIGATION_SUMMARY = "mitigation_summary_md"


def lambda_handler(event, context):
    detail = event["detail"]
    metadata = detail["metadata"]
    data = detail["data"]

    summary_record_id = data.get("summary_record_id")
    if not summary_record_id:
        # A completed task does not always produce a summary.
        return {"summary": None}

    record_type = (
        MITIGATION_SUMMARY
        if event["detail-type"].startswith("Mitigation")
        else INVESTIGATION_SUMMARY
    )

    paginator = devops_agent.get_paginator("list_journal_records")
    pages = paginator.paginate(
        agentSpaceId=metadata["agent_space_id"],
        executionId=metadata["execution_id"],
        recordType=record_type,
    )

    for page in pages:
        for record in page["records"]:
            if record["recordId"] == summary_record_id:
                return {"summary": record["content"]}

    return {"summary": None}
```

を使用して`detail-type`、リクエストするレコードタイプを決定します。調査イベントと緩和イベントはどちらも `data.task_type`として報告されるため`INVESTIGATION`、 `task_type` は区別しません。

## Amazon EventBridge アクセス許可
<a name="amazon-eventbridge-permissions"></a>

AWS DevOps Agent ではEventBridge にイベントを配信するための追加のアクセス許可は必要ありません。イベントはデフォルトのイベントバスに自動的に送信されます。

EventBridge ルール用に設定したターゲットによっては、特定のアクセス許可を追加する必要がある場合があります。ターゲットに必要なアクセス許可の詳細については、[「Amazon EventBridge ユーザーガイド」の「Amazon EventBridge のリソースベースのポリシー](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-use-resource-based.html)*EventBridge*」を参照してください。

## 追加の EventBridge リソース
<a name="additional-eventbridge-resources"></a>

EventBridge の概念と設定の詳細については、*Amazon EventBridge ユーザーガイド*の以下のトピックを参照してください。
+ [EventBridge イベントバス](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-bus.html)
+ [EventBridge イベント](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)
+ [EventBridge イベントパターン](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html)
+ [EventBridge ルール](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html)
+ [EventBridge ターゲット](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html)