AWS CodeCommit は、新規顧客には利用できなくなりました。 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 統合するためのポリシーを作成するを参照してください。