

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

# カスタムイベントバスのイベントソース
<a name="eb-custom-bus-event-sources"></a>

イベントソースは、 AWS サービスまたは SaaS パートナーからカスタムイベントバスにイベントを取り込みます。を使用して作成し`CreateEventSource`、送信先バスと 1 つのオリジンに名前を付けます。たとえば`aws.s3`、 など、EventBridge はオリジンからバスにイベントを配信します。独自のアプリケーションはバスに直接発行されるため、自分で生成しないイベントに対してのみイベントソースが必要です。

取り込まれたイベントは、コンテンツタイプ の EventBridge エンベロープの送信先バスに到着します`application/eventbridge+json`。イベントデータは、エンベロープフィールド `source`、`detail-type`、、`account`、`time`、`region``resources`、および を保持します`detail`。EventBridge は、エンベロープの `aws:Source`および から `source`および `aws:DetailType`システムメタデータフィールドも設定します`detail-type`。「[イベント構造: データ、メタデータ、システムメタデータ](eb-custom-bus-addressing.md)」を参照してください。

## イベントの移動方法
<a name="eb-custom-bus-event-sources-how"></a>

イベントソースを作成すると、EventBridge はカスタムイベントバス - Classic のアカウントにマネージドルールとターゲットを作成し、オリジンからカスタムイベントバスにイベントを転送します。どちらも を `ManagedBy`に設定してアカウントに表示されます`events.amazonaws.com`。これらは管理しません。イベントソースを削除または取り消すと削除されます。したがって、イベントは引き続きカスタムイベントバス - Classic のメトリクスに表示されます。

## AWS サービスイベントソース
<a name="eb-custom-bus-event-sources-aws"></a>

 AWS サービスイベントソースは、 `aws.s3`や などの 1 つの AWS サービスがアカウントに対して`aws.ec2`発行するイベントを取り込みます。デフォルトでは、そのサービスのすべてのイベントがバスに到着します。これを絞り込むには、 を追加します`Pattern`。次の例では、Amazon S3 オブジェクト作成イベントのみを許可するイベントソースを作成します。

```
aws eventsv2 create-event-source \
    --name s3-object-created \
    --event-bus-arn arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef \
    --configuration '{"AwsServiceEventsConfiguration":{"AwsService":"aws.s3","Pattern":"{\"detail-type\":[\"Object Created\"]}"}}'
```

イベントソースのパターンは、バス上で何を通過するかを決定します。サブスクライバーのフィルターは、バスを流れるイベントからサブスクライバーが受け取るものを決定します。「」を参照してください[サブスクライバーのイベントのフィルタリング](eb-custom-bus-filtering.md)。EventBridge イベントパターン構文 ([Amazon EventBridge のイベントパターン](eb-event-patterns.md)) でパターンを記述すると、EventBridge はそれをエンベロープに対して評価します。`source` キーと最上位の `account`キーと `region`キーをパターンから遠ざけます。EventBridge は、アカウントとリージョン、および選択したサービスからこれらの条件自体を追加し、それらを提供するパターンを拒否します。

## パートナーイベントソース
<a name="eb-custom-bus-event-sources-partner"></a>

パートナーイベントソースは、SaaS パートナーがアカウントに送信するイベントを取り込みます。作成する前に、パートナーはパートナーイベントソースをアカウントに提供し (「」を参照[Amazon EventBridge での SaaS パートナーからのイベントの受信](eb-saas.md))、そのソースは `PENDING`状態である必要があります。次の の例では、そのイベントソースを作成します。

```
aws eventsv2 create-event-source \
    --name example-partner-events \
    --event-bus-arn arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef \
    --configuration '{"PartnerEventsConfiguration":{"PartnerEventSourceArn":"arn:aws:events:us-east-1::event-source/aws.partner/example.com/12345"}}'
```

イベントソースを作成すると、EventBridge はアカウントにマネージドパートナーイベントバス (カスタムイベントバス - Classic) を作成して、パートナーソースをアクティブ化します。イベントソースを削除すると、EventBridge はそのバスを削除し、パートナーソースを に返します`PENDING`。そのバスをカスタマーマネージドキーで暗号化するには、 をアカウントとリージョンのキー`PartnerBusKmsKeyIdentifier`に設定します。それ以外の場合、EventBridge は AWS 所有キーを使用します。

## デッドレターキュー
<a name="eb-custom-bus-event-sources-dlq"></a>

バスに到達できないイベントをキャプチャするには、アカウントとリージョンの標準の Amazon SQS キュー`OnFailureConfiguration.Arn`に設定します。FIFO キューは拒否されます。メッセージは、指定したロールからではなく、`events.amazonaws.com`サービスプリンシパルからキューに到着するため、キューのリソースポリシー`sqs:SendMessage`でそのプリンシパルを付与します。

```
{
    "Effect": "Allow",
    "Principal": { "Service": "events.amazonaws.com" },
    "Action": "sqs:SendMessage",
    "Resource": "arn:aws:sqs:us-east-1:111122223333:my-event-source-dlq",
    "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" } }
}
```

パートナーイベントソースは、次の 2 つのソース ARNs: マネージドルール、配信失敗の場合、 マネージドパートナーイベントバス、暗号化失敗の場合。の条件が両方を許可`aws:SourceArn`する必要があるポリシー。

## アクセス許可
<a name="eb-custom-bus-event-sources-access"></a>

別のアカウントのバスにイベントソースを作成するには、バス所有者が AWS RAM 共有 (`AWSRAMEventBridgeEventBusV2EventSourceAccess` または `FullAccess`) を介して`events:CreateEventSource`、またはバス上の`PutResourcePolicy`ステートメントを使用して を付与する必要があります。`events:source` 条件キーには AWS サービス名またはパートナーイベントソース名が含まれているため、バス所有者は特定のオリジンを許可または拒否できます。「[カスタムイベントバスを他のアカウントと共有する](eb-custom-bus-sharing.md)」を参照してください。

マネージドパートナーイベントバスを暗号化するには、ID に で名前を付けたキー`kms:Decrypt`に `kms:DescribeKey`と が必要です`PartnerBusKmsKeyIdentifier`。これがないと、 で`CreateEventSource`失敗します`AccessDeniedException`。

```
{
    "Effect": "Allow",
    "Action": ["kms:DescribeKey", "kms:Decrypt"],
    "Resource": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
}
```

別のアカウントが送信先バスを所有し、カスタマーマネージドキーで暗号化する場合、そのキーのポリシーもアカウントを承認する必要があります。そうしないと、イベントソースの作成、更新、説明が失敗します。

## 取り込まれたイベントのサブスクライブ
<a name="eb-custom-bus-event-sources-shape"></a>

サブスクライバー AWS のサービスイベントまたはパートナーイベントを照合するには、`aws:Source`システムメタデータフィールドでフィルタリングします。EventBridge はこのフィールドを書き込み、パブリッシュコールは で始まる値を設定できないため`aws.`、その値の一致がイベントのオリジンを証明する唯一の一致になります。サービスイベントの場合は AWS サービス名を一致させ、パートナーイベントの場合はパートナーイベントのソース名を一致させます。

```
{ "Scope": "SYSTEM_METADATA", "Pattern": "{\"aws:Source\":[\"aws.s3\"]}" }

{ "Scope": "SYSTEM_METADATA", "Pattern": "{\"aws:Source\":[{\"prefix\":\"aws.partner/example.com\"}]}" }
```

イベントコンテンツをフィルタリングするには、`DATA`フィルターを追加します。エンベロープは のコンテンツを保持します`detail`。

```
{ "Scope": "DATA", "Pattern": "{\"detail\":{\"bucket\":{\"name\":[\"amzn-s3-demo-bucket\"]}}}" }
```

イベントデータには と `source` も含まれており`detail-type`、パブリッシャーはそれらの値をペイロードに書き込むことができるため、オリジンを証明しません。プレゼンスではなく値`aws:Source`で一致: 直接`PutEvents`呼び出しは`aws:Source`、 で始まることのない`Source`独自の から も設定します`aws.`。

## イベントソースを完全に停止する
<a name="eb-custom-bus-event-sources-revoke"></a>

バス所有者は、ARN `RevokeResource`で を呼び出すことで、イベントソースの取り込みを完全に停止できます。「」を参照してください[サブスクライバーまたはイベントソースの取り消し](eb-custom-bus-access-revoke.md)。取り消されたイベントソースは復元できません。失効は、名前を付けた 1 つのリソースを対象とするため、同じアカウントによる別のアカウントの作成を停止するバスリソースポリシーとペアリングします。アカウントがバスにイベントソースを作成するのをブロックするには:

```
{
    "Effect": "Deny",
    "Principal": { "AWS": "arn:aws:iam::444455556666:root" },
    "Action": "events:CreateEventSource",
    "Resource": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef"
}
```

1 つのオリジンをブロックしながら他のオリジンを許可するには、 で拒否を条件とします`events:source`。

```
{
    "Effect": "Deny",
    "Principal": { "AWS": "arn:aws:iam::444455556666:root" },
    "Action": "events:CreateEventSource",
    "Resource": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef",
    "Condition": { "StringEquals": { "events:source": "aws.partner/example.com/12345" } }
}
```

## イベントがバスに交差することを確認する
<a name="eb-custom-bus-event-sources-troubleshooting"></a>

2 セットのメトリクスは、取り込まれたイベントがカスタムイベントバスに到達するかどうかを示します。マネージドルールは、アカウントの通常のルールメトリクスを でレポートします`AWS/Events`。送信先バスのパブリッシュメトリクスには `EventSource`ディメンションがあり、per-event-sourceインバウンドトラフィックの内訳を示します。「」を参照してください[カスタムイベントバスのオブザーバビリティ: メトリクス、ログ、CloudTrail](eb-custom-bus-observability.md)。

サブスクライバーがアカウント間でイベントを 1 つのカスタムイベントバスから別のカスタムイベントバスに持ち込む場合、 AWS サービスイベントとパートナーイベントは、イベントの構造`aws:Source`とコンテンツがそのままである`aws:DetailType`限り、 と を維持します。EventBridge は を使用して送信先バスへの到着を承認するため`events:PutEvents`、送信先バスのリソースポリシーはそのアクションを転送ロールに付与する必要があります。アプリケーションが公開したイベントは を取るため`events:PutRawEvents`、両方を混在させるストリームには両方のアクションが必要です。「」を参照してください[イベントバスターゲット: bus to bus](eb-custom-bus-target-bus.md)。