AWS CodeCommit
ユーザーガイド (API バージョン 2015-04-13)

AWS CodeCommit リポジトリのトリガーを管理する

コードがプッシュされるように、または他のイベントでアクションがトリガーされるように (Amazon Simple Notification Service (Amazon SNS) からの通知の送信、AWS Lambda の関数の呼び出しなど)、CodeCommit リポジトリを設定することができます。CodeCommit リポジトリごとに、最大 10 のトリガーを作成することができます。

トリガーは一般的に次のように設定されます。

  • リポジトリにプッシュする度に登録ユーザーに E メールを送信する。

  • リポジトリのメインブランチにプッシュされたらビルドを開始するように外部のビルドシステムに通知する。

外部のビルドシステムのようなシナリオの場合は、他のアプリケーションと相互作用するように Lambda 関数を記述する必要があります。この E メールのシナリオで必要なことは、Amazon SNS トピックを作成することだけです。

このトピックでは、CodeCommit で Amazon SNS および Lambda のアクションをトリガーできるようにするアクセス許可の設定方法について説明します。また、トリガーの作成、編集、テスト、削除の例を示したリンクも紹介します。

リソースの作成と CodeCommit のアクセス権限の追加

Amazon SNS トピックと Lambda 関数 は、CodeCommit のトリガーと統合できますが、まず、リソースを作成し、CodeCommit にアクセス許可を付与して、このリソースと通信できるようにするポリシーを設定する必要があります。このリソースは、CodeCommit リポジトリと同一の AWS リージョンに作成する必要があります。たとえば、リポジトリが 米国東部 (オハイオ) (us-east-2) に作成されている場合は、Amazon SNS トピックまたは Lambda 関数 が 米国東部 (オハイオ) に存在する必要があります。

  • Amazon SNS トピックの場合、Amazon SNS トピックが CodeCommit リポジトリと同じアカウントを使用して作成されている場合は、IAM ポリシーまたはアクセス許可を追加設定する必要はありません。CodeCommit トリガーは、Amazon SNS トピックを作成し、サブスクライブした時点で作成できます。

    • Amazon SNS のトピック作成の詳細については、「Amazon SNS のドキュメント」を参照してください。

    • Amazon SNS を使用して Amazon SQS キューにメッセージを送信する方法の詳細については、『Amazon SNS 開発者ガイド』の「Amazon SQS キューへのメッセージの送信」を参照してください。

    • Amazon SNS を使用して Lambda 関数を呼び出す方法の詳細については、『Amazon SNS 開発者ガイド』の「Lambda 関数の呼び出し」を参照してください。

  • トリガーを設定して、別の AWS アカウントで Amazon SNS トピックを使用する場合は、まず CodeCommit でそのトピックにパブリッシュできるようにするポリシーを使用してトピックを設定する必要があります。詳細については、「例 1: Amazon SNS トピックへのクロスアカウントアクセスを有効にするポリシーを作成する」を参照してください。

  • Lambda 関数を設定するには、この関数の一部として Lambda コンソールでトリガーを作成します。Lambda コンソールで作成されるトリガーには、CodeCommit で Lambda 関数を呼び出すために必要なアクセス許可が元々割り当てられているため、この方法が最も簡単です。CodeCommit にトリガーを作成する場合は、CodeCommit でこの関数を呼び出せるようにするポリシーを含む必要があります。詳細については、「既存の Lambda 関数のトリガーを作成する」および「例 3: CodeCommit トリガーとの AWS Lambda 統合のためのポリシーを作成する」を参照してください。