例: Amazon SNSトピックの AWS CodeCommit トリガーを作成する - AWS CodeCommit

AWS CodeCommit は、新規顧客には利用できなくなりました。の既存のお客様は、通常どおりサービスを AWS CodeCommit 引き続き使用できます。詳細はこちら

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

例: Amazon SNSトピックの AWS CodeCommit トリガーを作成する

CodeCommit リポジトリのトリガーを作成して、そのリポジトリのイベントが Amazon Simple Notification Service (Amazon SNS) トピックから通知をトリガーするようにできます。Amazon SNSトピックへのトリガーを作成して、ユーザーがブランチの削除などのリポジトリイベントに関する通知をサブスクライブできるようにすることができます。Amazon Simple Queue Service (Amazon SQS) や などの他の サービスと Amazon SNSトピックの統合を活用することもできます AWS Lambda。

注記
  • トリガーは、リポジトリイベントに応答して実行されるアクションである既存の Amazon SNSトピックを指す必要があります。Amazon SNSトピックの作成とサブスクライブの詳細については、「Amazon Simple Notification Service の開始方法」を参照してください。

  • Amazon SNS FIFO (先入れ先出し) トピックは、 CodeCommit トリガーではサポートされていません。

リポジトリの CodeCommit Amazon SNSトピックへのトリガーを作成する (コンソール)

  1. https://console.aws.amazon.com/codesuite/codecommit/home で CodeCommit コンソールを開きます。

  2. リポジトリで、リポジトリイベントのトリガーを作成するリポジトリを選択します。

  3. リポジトリのナビゲーションペインで、[設定] を選択し、[トリガー] を選択します。

  4. [トリガーの作成] を選択してから、次の操作を行います。

    • トリガー名 に、トリガーの名前を入力します (例:MyFirstTrigger).

    • イベント で、Amazon SNSトピックが通知を送信するトリガーとなるリポジトリイベントを選択します。

      [すべてのリポジトリイベント] を選択すると、他のイベントは選択できません。イベントのサブセットを選択するには、[すべてのリポジトリイベント] の選択を解除し、リストから 1 つ以上のイベントを選択します。例えば、ユーザーがリポジトリにブランチまたはタグ CodeCommitを作成したときにのみトリガーを実行する場合は、すべてのリポジトリイベント を削除し、ブランチまたはタグの作成 を選択します。

    • トリガーをリポジトリのすべてのブランチに適用する場合は、[ブランチ] で選択を空白のままにします。このデフォルトのオプションでは、トリガーがすべてのブランチに自動的に適用されます。このトリガーを特定のブランチにのみ適用する場合は、リポジトリブランチのリストから最大 10 個のブランチ名を選択します。

    • を使用するサービスを選択するでAmazon SNSを選択します。

    • Amazon SNSで、リストからトピック名を選択するか、トピックARNの を入力します。

      注記

      Amazon SNS FIFO (先入れ先出し) トピックは、 CodeCommit トリガーではサポートされていません。タイプが Standard に設定されている Amazon SNSトピックを選択する必要があります。

    • カスタムデータ で、Amazon SNSトピックによって送信される通知に含める任意の情報を指定します (例えば、デベロッパーがこのリポジトリで開発について話し合うときに使用するIRCチャネル名)。このフィールドは文字列です。これは動的パラメータを渡すために使用することはできません。

  5. (オプション) [トリガーのテスト] を選択します。このステップは、 CodeCommit と Amazon SNSトピック間のアクセスが正しく設定されていることを確認するのに役立ちます。Amazon SNSトピックを使用して、利用可能な場合はリポジトリのデータを使用してテスト通知を送信します。実際のデータがない場合は、テスト通知サンプルデータが使用されます。

  6. [Create trigger (トリガーを作成する)] を選択して、トリガーの作成を完了します。

CodeCommit リポジトリの Amazon SNSトピックへのトリガーを作成する (AWS CLI)

コマンドラインを使用して、誰かが CodeCommit リポジトリにコミットをプッシュしたときなどのリポジトリイベントに応答して Amazon SNSトピックのトリガーを作成することもできます。

Amazon SNSトピックのトリガーを作成するには
  1. プレーンテキストエディタを開き、以下を指定するJSONファイルを作成します。

    • Amazon SNSトピック名。

      注記

      Amazon SNS FIFO (先入れ先出し) トピックは、 CodeCommit トリガーではサポートされていません。タイプが Standard に設定されている Amazon SNSトピックを選択する必要があります。

    • このトリガーで監視するリポジトリとブランチ。(ブランチを指定しない場合、トリガーはリポジトリのすべてのブランチに適用されます。)

    • このトリガーをアクティブ化するイベントです。

    ファイルを保存します。

    例えば、 という名前のリポジトリのトリガーを作成するには MyDemoRepo という名前の Amazon SNSトピックにすべてのリポジトリイベントを発行する MySNSTopic 2 つのブランチの場合、main また、preprod:

    { "repositoryName": "MyDemoRepo", "triggers": [ { "name": "MyFirstTrigger", "destinationArn": "arn:aws:sns:us-east-2:111122223333:MySNSTopic", "customData": "", "branches": [ "main", "preprod" ], "events": [ "all" ] } ] }

    リポジトリのトリガーJSONごとに、 にトリガーブロックが必要です。リポジトリに複数のトリガーを作成するには、 に複数のトリガーブロックを含めますJSON。このファイルに作成されたすべてのトリガーは指定されたリポジトリであることに注意してください。1 つのJSONファイルで複数のリポジトリのトリガーを作成することはできません。例えば、リポジトリに 2 つのトリガーを作成する場合は、2 つのトリガーブロックを持つJSONファイルを作成できます。次の例では、2 番目のトリガーにブランチが指定されていないため、トリガーはすべてのブランチに適用されます。

    { "repositoryName": "MyDemoRepo", "triggers": [ { "name": "MyFirstTrigger", "destinationArn": "arn:aws:sns:us-east-2:111122223333:MySNSTopic", "customData": "", "branches": [ "main", "preprod" ], "events": [ "all" ] }, { "name": "MySecondTrigger", "destinationArn": "arn:aws:sns:us-east-2:111122223333:MySNSTopic2", "customData": "", "branches": [], "events": [ "updateReference", "deleteReference" ] } ] }

    たとえば、コミットがリポジトリにプッシュされたときは、指定したイベントのトリガーを作成できます。イベントタイプは次のとおりです。

    • all: 指定されたリポジトリとブランチのすべてのイベント。

    • updateReference : 指定されたリポジトリやブランチにコミットをプッシュされた場合。

    • createReference: 指定されたリポジトリに新しいブランチまたはタグが作成された場合。

    • deleteReference: 指定されたリポジトリ内のブランチまたはタグが削除された場合。

    注記

    トリガー内で複数のイベントタイプを使用できます。ただし、all を指定すると、他のイベントを指定することはできません。

    有効なイベントタイプのリストを一覧表示するには、ターミナルまたはコマンドプロンプトで、「aws codecommit put-repository-triggers help」と入力します。

    さらに、 に文字列を含めることができます customData (例えば、デベロッパーがこのリポジトリで開発について話し合うときに使用するIRCチャネル名)。このフィールドは文字列です。これは動的パラメータを渡すために使用することはできません。この文字列は、トリガーに応答して返される CodeCommit JSONに属性として追加されます。

  2. (オプション) ターミナルまたはコマンドラインプロンプトで、test-repository-triggers コマンドを実行することもできます。このテストでは、リポジトリのサンプルデータを使用して (データがない場合はサンプルデータを生成して)、Amazon SNSトピックのサブスクライバーに通知を送信します。例えば、以下を使用して、 という名前JSONのトリガーファイルの をテストします。trigger.json は有効で、Amazon SNSトピックに発行 CodeCommit できます。

    aws codecommit test-repository-triggers --cli-input-json file://trigger.json

    成功した場合、このコマンドは次のような情報を返します。

    { "successfulExecutions": [ "MyFirstTrigger" ], "failedExecutions": [] }
  3. ターミナルまたはコマンドプロンプトで、 put-repository-triggers コマンドを実行して でトリガーを作成します CodeCommit。例えば、 という名前のJSONファイルを使用するには trigger.json トリガーを作成するには:

    aws codecommit put-repository-triggers --cli-input-json file://trigger.json

    このコマンドでは、次のような設定 ID が返されます。

    { "configurationId": "0123456-I-AM-AN-EXAMPLE" }
  4. トリガーの設定を表示するには、get-repository-triggers コマンドを実行して、リポジトリの名前を指定します。

    aws codecommit get-repository-triggers --repository-name MyDemoRepo

    このコマンドは、リポジトリ用に構成されたすべてのトリガーの構造を、次のように戻します。

    { "configurationId": "0123456-I-AM-AN-EXAMPLE", "triggers": [ { "events": [ "all" ], "destinationArn": "arn:aws:sns:us-east-2:111122223333:MySNSTopic", "branches": [ "main", "preprod" ], "name": "MyFirstTrigger", "customData": "Project ID 12345" } ] }
  5. トリガー自体の機能をテストするには、トリガーを設定したリポジトリにコミットを作成してプッシュします。Amazon SNSトピックからのレスポンスが表示されます。例えば、E メールを送信するように Amazon SNSトピックを設定した場合、トピックにサブスクライブしている E メールアカウントに Amazon SNS からの E メールが表示されます。

    以下は、リポジトリへのプッシュSNSに応答して Amazon から送信された E メールからの出力例です CodeCommit。

    { "Records":[ { "awsRegion":"us-east-2", "codecommit":{ "references" : [ { "commit":"317f8570EXAMPLE", "created":true, "ref":"refs/heads/NewBranch" }, { "commit":"4c925148EXAMPLE", "ref":"refs/heads/preprod", } ] }, "eventId":"11111-EXAMPLE-ID", "eventName":"ReferenceChange", "eventPartNumber":1, "eventSource":"aws:codecommit", "eventSourceARN":"arn:aws:codecommit:us-east-2:111122223333:MyDemoRepo", "eventTime":"2016-02-09T00:08:11.743+0000", "eventTotalParts":1, "eventTriggerConfigId":"0123456-I-AM-AN-EXAMPLE", "eventTriggerName":"MyFirstTrigger", "eventVersion":"1.0", "customData":"Project ID 12345", "userIdentityARN":"arn:aws:iam::111122223333:user/JaneDoe-CodeCommit", } ] }