

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

# カスタムイベントバスへのイベントの発行
<a name="eb-custom-bus-publish"></a>

2 つの API オペレーション、または のいずれかを使用して、カスタムイベントバスにイベントを発行`PutEvents`します`PutRawEvents`。選択したオペレーションによって、配信されるイベントの形状が修正され、その形状によって、バスのすべてのフィルター、トランスフォーマー、およびターゲットパラメータの書き込み方法が決まります。最初のサブスクライバーを作成する前に、 を選択します。2 つのシェイプについては、「」を参照してください[イベント構造: データ、メタデータ、システムメタデータ](eb-custom-bus-addressing.md)。

2 つのオペレーションは 1 種類のイベントを生成し、EventBridge はイベントがバス上にあるとそれらを同じように扱います。 `PutEvents`は よりも便利です`PutRawEvents`。EventBridge はエントリの `Source`、、`Detail`、 などのフィールドを受け取り、そこから JSON `DetailType`エンベロープを構築し、そのエンベロープを のコンテンツタイプの JSON ペイロードとして保存します`application/eventbridge+json`。その後、フィルタリング、変換、順序付け、重複排除、保持、配信は、 で公開された JSON イベントとまったく同じように機能します`PutRawEvents`。サブスクライバーに表示される唯一の違いは、 の の上部と`PutRawEvents`、 `Data` のエンベロープ`Data.detail`内の フィールドがある場所です`PutEvents`。Avro、Protobuf、および不透明ペイロードについては、「」を参照してください[サポートされているコンテンツタイプ: JSON、Avro、Protobuf、および raw バイト](eb-custom-bus-open-formats.md)。


|  | `PutEvents` | `PutRawEvents` | 
| --- | --- | --- | 
| ペイロードフィールド | Detail、JSON 文字列 | Data、任意の形式のバイト | 
| 各エントリで必須 | Source, DetailType | Data, SystemMetadata.ContentType | 
| コンテンツタイプ | EventBridge で に設定する application/eventbridge\+json | ユーザーが設定: application/json、application/avro、application/protobuf、または application/octet-stream。「[サポートされているコンテンツタイプ: JSON、Avro、Protobuf、および raw バイト](eb-custom-bus-open-formats.md)」を参照してください。 | 
| 独自のメタデータ | 利用不可 | Metadata、最大 100 個のキーのマップ | 
| 重複排除入力の順序付けと重複排除 | SystemMetadata.EventGroupId, SystemMetadata.DeduplicationId | 同じ 2 つのフィールド | 
| 次の場合に使用 | イベントが JSON で、カスタムイベントバス - Classic が生成するのと同じエンベロープが必要 | ペイロードがバイナリまたは非 JSON の場合、独自のメタデータキーが必要な場合、またはペイロードを送信されたとおりに配信したい場合 | 

## APIs発行
<a name="eb-custom-bus-publish-apis"></a>

どちらのオペレーションも、リクエストごとに 1～100 エントリのバッチを受け取り、エントリごとに 1 つの結果をリクエスト順に返します。EventBridge は、各エントリを単独で受け入れるか拒否します。拒否されたエントリは、 `ErrorMessage`の代わりに `ErrorCode`と を持ち`SuccessCode`、同じリクエスト内の他のエントリは影響を受けません。一緒に属するバッチエントリ。HTTP ステータスのみではなくすべての結果を読み込みます。「」を参照してください[レスポンスの読み取り](#eb-custom-bus-publish-results)。どちらの呼び出しもアカウントの 1 つのパブリッシュレート予算から取得され、バス自体にはすべてのパブリッシャーとイベントソースをカウントする 1 秒あたりの取り込みクォータがあります。「」を参照してください[カスタムイベントバスのクォータ](eb-quota.md#eb-custom-bus-quotas)。

### PutEvents で JSON イベントを発行する
<a name="eb-custom-bus-publish-putevents"></a>

```
aws eventsv2 put-events \
    --event-bus-arn arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef \
    --entries '[
        {
            "Source": "com.example.orders",
            "DetailType": "OrderPlaced",
            "Detail": "{\"orderId\":\"1001\",\"total\":42.5}"
        }
    ]'
```

### PutRawEvents を使用して raw イベントを発行する
<a name="eb-custom-bus-publish-putrawevents"></a>

`Data` はバイナリフィールドです。で AWS CLI、base64 テキストとして指定します。次の例では、コンテンツタイプが の raw バイトと同じ JSON ペイロードを発行し`application/json`、メタデータキーを追加します。

```
aws eventsv2 put-raw-events \
    --event-bus-arn arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef \
    --entries '[
        {
            "Data": "eyJvcmRlcklkIjoiMTAwMSIsInRvdGFsIjo0Mi41fQ==",
            "Metadata": { "tenant": "acme" },
            "SystemMetadata": { "ContentType": "application/json" }
        }
    ]'
```

Avro または Protobuf を発行するには、 を使用してリクエストでスキーマレジストリに名前を付けます`--schema-registry-configuration`。 `RegistryUri`は AWS Glue スキーマレジストリ ARN または Confluent Cloud HTTPS URL です。レジストリは、バスではなくリクエストごとに名前が付けられます。EventBridge はデコードしないため、コンテンツタイプのイベントにはレジストリ`application/octet-stream`は必要ありません。

## raw バイトの発行
<a name="eb-custom-bus-publish-raw-bytes"></a>

EventBridge が解析も検査もしないペイロードを発行するには、 で Base64-encodedバイト`PutRawEvents`数で を呼び出し`Data`、 を `SystemMetadata.ContentType`に設定します`application/octet-stream`。EventBridge は、送信されたバイトを正確に保存して配信するため、`DATA`フィルタは一致しません。エントリで設定した`METADATA`キーまたは を使用してルーティングします`SYSTEM_METADATA`。サブスクライバーのトランスフォーマーは、ペイロードを の Base64 文字列と見なします`$events.Data`。Avro と Protobuf の配信の選択肢と逆シリアル化された代替については、「」を参照してください[サポートされているコンテンツタイプ: JSON、Avro、Protobuf、および raw バイト](eb-custom-bus-open-formats.md)。トランスフォーマーにペイロードがどのように表示されるかについては、「」を参照してください[JSONata を使用したイベントの変換](eb-custom-bus-transform.md)。

## レスポンスの読み取り
<a name="eb-custom-bus-publish-results"></a>

どちらのオペレーションも、リクエストと同じ順序で、エントリごとに 1 つの結果を返します。各結果には、 `SuccessCode`または `ErrorCode`と が含まれます`ErrorMessage`。個々のエントリが失敗してもリクエストが成功する可能性があるため、すべてのエントリを確認してください。

`SuccessCode` は `PUBLISHED`または です`DEDUPLICATED`。 はEventBridge が既に承諾したイベントと重複してエントリを認識し、2 番目のコピーを保存しなかった`DEDUPLICATED`ことを意味します。これは成功であり、エラーではありません。詳細については、「[カスタムイベントバスでのイベントの順序付けと重複排除](eb-custom-bus-ordering.md)」を参照してください。

公開レスポンスは、EventBridge がイベントを承諾したことを報告します。配信はレポートされません。イベントが到着したことを確認するには、ターゲットを確認します。

このセクションは、以下のトピックで構成されます。
+ [サポートされているコンテンツタイプ: JSON、Avro、Protobuf、および raw バイト](eb-custom-bus-open-formats.md)
+ [カスタムイベントバスのイベントソース](eb-custom-bus-event-sources.md)
+ [イベント構造: データ、メタデータ、システムメタデータ](eb-custom-bus-addressing.md)