

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

# API 送信先に CloudEvents イベントを送信する
<a name="eb-api-destinations-cloudevents"></a>

CloudEvents は、サービス、プラットフォーム、システム間の相互運用性を提供することを目ざした、イベントフォーマット用のベンダーニュートラルな仕様です。を使用して EventBridge 、API 送信先などのターゲットに送信される前に、 AWS サービスイベントを CloudEvents に変換できます。

**注記**  
次の手順では、ソースイベントを*構造化モード*の CloudEvents に変換する方法について説明します。CloudEvents 仕様では、構造化モードメッセージは、イベント全体 (属性とデータ) がイベントのペイロードにエンコードされるメッセージです。

CloudEvents 仕様の詳細については、「[cloudevents.io](https://cloudevents.io/)」を参照してください。

**コンソールを使用して AWS イベントを CloudEvents 形式に変換するには**

ターゲットに配信する前にイベントを CloudEvents 形式に変換するには、まずイベントバスルールを作成します。ルールの定義の一環として、指定したターゲットに送信する前に、入力トランスフォーマーを使用して EventBridge 変換イベントを設定します。

1. 「[拡張ビルダーを使用したルールの作成](eb-create-rule-visual.md)」のステップに従います。

1. [ターゲットを選択する](eb-create-rule-wizard.md#eb-create-rule-target) のステップで、ターゲットタイプとして API 送信先を選択するように求めるプロンプトが表示された場合:

   1. **[EventBridge API の宛先]** を選択します。

   1. 次のいずれかを行います。
      + 既存の API 送信先を使用するには、**[既存の API 送信先を使用]** を選択します。
      + **[新しい API 送信先を作成]** し、新しい API 送信先を定義するために必要な設定を指定します。

        これらの設定の指定の詳細については、「[Amazon EventBridge で API 送信先を作成する](eb-api-destination-create.md)」をご参照ください。

   1. CloudEvents イベントに必要な Content-Type ヘッダーパラメータを指定します。
      + **[ヘッダーパラメータ]** で、**[ヘッダーパラメータを追加]** を選択します。
      + **キー**には、`Content-Type` を指定します。

        **値**には、`application/cloudevents+json; charset=UTF-8` を指定します。

1. ターゲットの実行ロールを指定します。

1. ソースイベントデータを CloudEvents 形式に変換するよう、入力トランスフォーマーを定義します。

   1. **[追加設定]** セクションの **[ターゲット入力を設定]** で **[入力トランスフォーマー]** を選択します。

      **[入力トランスフォーマーを設定]** を選択します。

   1. **[ターゲット入力トランスフォーマー]** で、**[入力パス]** を指定します。

      以下の入力パスでは、リージョン属性は CloudEvents 形式のカスタム*拡張属性*です。そのため、CloudEvents 仕様に準拠する必要はありません。

      CloudEvents を使用すると、コア仕様で定義されていない拡張属性を使用および作成できます。既知の拡張属性の一覧などの詳細については、GitHub の「[CloudEvents 仕様ドキュメント](https://github.com/cloudevents/spec/tree/main)」の「[CloudEvents Extension Attributes](https://github.com/cloudevents/spec/tree/main/cloudevents/extensions)」を参照してください。

      ```
      {
        "detail": "$.detail",
        "detail-type": "$.detail-type",
        "id": "$.id",
        "region": "$.region",
        "source": "$.source",
        "time": "$.time"
      }
      ```

   1. **テンプレート**の場合は、テンプレートを入力してソースイベントデータを CloudEvents 形式に変換します。

      以下のテンプレートでは、入力パスの `region` 属性は CloudEvents 仕様の拡張属性であるため、`region` は厳密に必須ではありません。

      ```
      {
        "specversion":"1.0",
        "id":<id>,
        "source":<source>,
        "type":<detail-type>,
        "time":<time>,
        "region":<region>,
        "data":<detail>
      }
      ```

1. [手順](eb-create-rule-visual.md)に従ってルールの作成を完了します。