このトピックでは、API デスティネーションを使用して Jenkins と EventBridge を統合する方法について説明します。
背景情報
API デスティネーションを使用すると、サードパーティの Software as a Service(SaaS)システム、または HTTP 経由で接続された自己管理型システムの API オペレーションを、ローコードな方法で、追加のアーキテクチャなしで呼び出すことができます。 API デスティネーションを使用すると、SaaS アプリケーションを簡単に構築して接続できます。これは、データサイロの防止に役立ちます。さらに、複数の API オペレーション間で接続を共有して、便利でプラグ可能な認証機能を提供できます。
サードパーティの SaaS システムまたは自己管理型システムの API オペレーションには、API デスティネーションと接続が含まれます。
API デスティネーションは、API オペレーションのメタデータを定義します。イベントルールを作成するときに、異なる API デスティネーションを参照して、異なるサードパーティの SaaS システムまたは自己管理型システムにアクセスできます。異なるイベントルールに対して同じ API デスティネーションを参照することもできます。複数のイベントルールを使用してイベントをサービスの API オペレーションに配信し、イベントルール内の特定のパラメーターを変更するとします。 API デスティネーションが定義されていない場合、すべてのイベントルールで特定のパラメーターを 1 つずつ変更する必要があります。ただし、API デスティネーションが定義されている場合は、API デスティネーションの構成のみを変更する必要があり、特定のパラメーターは、API デスティネーションを参照するすべてのイベントルールで自動的に更新されます。
接続は、サードパーティの SaaS システムまたは自己管理型システムを現在の API デスティネーションに接続するために使用されます。接続の構成は、ネットワーク構成と認証構成で構成されます。ネットワーク構成は、サードパーティの SaaS システムまたは自己管理型システムがインターネット経由で、またはプライベートネットワーク経由で現在の API デスティネーションに接続するかどうかを指定します。 EventBridge では、基本認証、OAuth 認証、API キーのいずれかの認証方法を選択できます。
基本認証:データリソースにアクセスする前に、ユーザー名とパスワードを確認する必要があります。ユーザー名とパスワードは Base64 エンコードされ、デスティネーションサービスに送信される前に Basic とスペースが前に付けられます。ユーザー名とパスワードがデコードされ、検証に合格した場合、サーバーは EventBridge からの要求に応答します。そうでない場合、要求は返送されます。
OAuth 認証:この認証方法は安全で信頼性があります。 OAuth 認証を使用すると、認証コード、暗黙的な認証コード、パスワード、またはクライアントクレデンシャルを使用してサードパーティアプリケーションを承認できます。イベントドリブンシナリオでは、クライアントクレデンシャルが一般的に使用されます。クライアントクレデンシャルを使用してサードパーティアプリケーションを承認する場合は、EventBridge でクライアントクレデンシャルを取得するために必要な情報を構成する必要があります。これには、OAuth サービスの IP アドレス、クライアント ID、およびクライアントパスワードが含まれます。 EventBridge では、GET または POST メソッドを使用してクライアントクレデンシャルを取得できます。
API キー:この認証方法は比較的簡単です。ユーザーはカスタムキー名とキー値を使用して API オペレーションを呼び出すことができます。 EventBridge は、HTTP ヘッダーを使用して認証のためにキー名とキー値をサーバーに送信します。

Jenkins は、継続的インテグレーションのための Java ベースのツールです。 Jenkins を使用して、ソフトウェアプロジェクトを継続的かつ自動的にビルドおよびテストし、外部タスクのステータスを監視できます。次のセクションでは、Jenkins を例として使用して、API デスティネーションを使用して他のアプリケーションを EventBridge と統合する方法について説明します。
前提条件
Jenkins がインストールされています。詳細については、Getting started with the Guided Tour を参照してください。
Jenkins に通知プラグインがインストールされています。詳細については、Notification を参照してください。
手順 1:API トークンを追加する
Jenkins にログインし、ホームページの右上隅にあるアカウントをクリックします。
左側のナビゲーションペインで、[構成] をクリックします。次に、新しいトークンを追加[API トークン] セクションで をクリックします。

フィールドにトークン名を入力し、[生成] をクリックします。
パスワード文字列が Jenkins によって自動的に生成されます。
アイコンをクリックしてパスワード文字列をコピーします。次に、パスワード文字列を保存します。 
手順 2:接続を作成する
EventBridge コンソール にログインします。左側のナビゲーションペインで、 を選択します。
上部のナビゲーションバーで、接続を構成するリージョンを選択します。次に、[接続構成] タブをクリックします。
[接続構成] タブで、[作成] をクリックします。 [接続の作成] パネルで、次のパラメーターを構成し、[OK] をクリックします。
名前:接続の名前。
説明:接続の説明。
認証:[基本] を選択します。次に、[ユーザー名] パラメーターを Jenkins アカウントのユーザー名に設定し、[パスワード] パラメーターを手順 1 で保存したパスワード文字列に設定します。
ネットワーク:[インターネット] がデフォルトで選択されています。
手順 3:API デスティネーションを作成する
接続を作成したら、[API デスティネーション] タブをクリックします。次に、[作成] をクリックします。
[接続の作成] パネルで、次のパラメーターを構成し、[OK] をクリックします。
[基本情報] セクションで、[メソッド] パラメーターを [カスタム] に設定します。次に、API デスティネーションの名前と説明を指定します。
[API 構成] セクションで、[URL] パラメーターを Jenkins の API URL に設定します。この例では、
http://XX.XX.XX.XX:8080/job/test/buildを使用して Jenkins プロジェクトを呼び出します。次に、[HTTP メソッド] パラメーターを [POST] に設定します。[接続構成] セクションで、[既存の接続を選択] をクリックし、手順 2 で作成した接続を選択します。
手順 4:カスタムイベントバスを作成する
左側のナビゲーションペインで、[イベント バス] をクリックします。表示されるページで、[作成] を [カスタム イベント バス] セクションでクリックします。
[カスタムイベントバスの作成] パネルで、次のパラメーターを構成し、[作成] をクリックします。
[イベントバス] ステップで、[名前] パラメーターと [説明] パラメーターを構成します。次に、[次のステップ] をクリックします。
[イベントソース] ステップで、[イベントソース名] パラメーターと [説明] パラメーターを構成し、[イベントプロバイダー] パラメーターを [カスタムアプリケーション] に設定して、[次のステップ] をクリックします。
[イベントルール] ステップで、[イベントルール名] パラメーターと [説明] パラメーターを構成します。次に、[次のステップ] をクリックします。
[イベントターゲット] ステップで、次のパラメーターを構成します。
サービスタイプ:[API オペレーションによってトリガーされる] を選択します。
メソッド:[既存のアイテムを使用] を選択します。
HTTP パラメーター:イベントが Jenkins にプッシュされるときに渡されるパラメーターとパラメーターの内容を指定します。
手順 5:イベントを公開する
[イベントバス] ページで、手順 4 で作成したカスタムイベントバスを見つけ、イベントを公開[アクション] 列の をクリックします。
[カスタムイベントバスへのイベントの公開] パネルで、[カスタムイベントソース] ドロップダウンリストから作成したカスタムイベントソースを選択し、[OK] をクリックします。
イベントを確認する
Jenkins のホームページに戻り、API デスティネーションを作成したときに構成した URL で定義されているプロジェクトをクリックします。
[ビルド履歴] セクションで、最新のビルド履歴をクリックします。

左側のナビゲーションペインで、[コンソール出力] をクリックしてログの詳細を表示します。

Jenkins が EventBridge によって公開されたイベントを受信し、ビルドプロジェクトを開始したことがわかります。