例: 。作成 AWS CodeCommit トリガー、 Amazon SNS トピック - AWS CodeCommit

例: 。作成 AWS CodeCommit トリガー、 Amazon SNS トピック

のトリガーを作成できます。 CodeCommit リポジトリ内のイベントが、 Amazon Simple Notification Service (Amazon SNS)トピック。リポジトリイベント (ブランチの削除など) に関する通知をユーザーが受信できるようにするには、Amazon SNS トピックへのトリガーを作成することをお勧めします。また、 Amazon SNS 他のサービス(例: Amazon Simple Queue Service (Amazon SQS)および AWS Lambda.

注記

このトリガーは、リポジトリイベントに応答して実行されるアクションとなる既存の Amazon SNS トピックにポイントする必要があります。作成および購読についての詳細は、 Amazon SNS トピックについては、を参照してください。 を使ってみる Amazon Simple Notification Service.

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

  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 (たとえば、このリポジトリで開発について話し合うときに開発者が使用するIRCチャネル名など)。このフィールドは文字列です。これは動的パラメータを渡すために使用することはできません。

  5. (オプション)選択 テストトリガー. このステップは、 CodeCommit および Amazon SNS トピックを参照してください。このステップでは、Amazon SNS トピックでリポジトリのデータを使用してテスト通知を送信します。実際のデータがない場合は、テスト通知サンプルデータが使用されます。

  6. 選択 トリガーを作成 トリガーの作成を終了します。

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

コマンド ラインを使用して、 Amazon SNS のトピック CodeCommit リポジトリイベント。たとえば、誰かがあなたのリポジトリにコミットをプッシュする場合など。

のトリガーを作成するには Amazon SNS トピック

  1. プレーンテキストエディタを開き、次を指定する JSON ファイルを作成します。

    • は、 Amazon SNS トピック名。

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

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

    ファイルを保存します。

    たとえば、MyDemoRepo すべてのリポジトリイベントを Amazon SNS トピック名 MySNSTopic 2つの支店で master および preprod:

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

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

    { "repositoryName": "MyDemoRepo", "triggers": [ { "name": "MyFirstTrigger", "destinationArn": "arn:aws:sns:us-east-2:80398EXAMPLE:MySNSTopic", "customData": "", "branches": [ "master", "preprod" ], "events": [ "all" ] }, { "name": "MySecondTrigger", "destinationArn": "arn:aws:sns:us-east-2:80398EXAMPLE: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 有効であり、 CodeCommit は に公開できます Amazon SNS トピック:

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

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

    { "successfulExecutions": [ "MyFirstTrigger" ], "failedExecutions": [] }
  3. 端末またはコマンドプロンプトで、 put-repository-triggers コマンドでトリガを作成する CodeCommit. たとえば、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:80398EXAMPLE:MySNSTopic", "branches": [ "master", "preprod" ], "name": "MyFirstTrigger", "customData": "Project ID 12345" } ] }
  5. トリガー自体の機能をテストするには、トリガーを設定したリポジトリにコミットを作成してプッシュします。_からの応答が表示されます。 Amazon SNS トピックを参照してください。たとえば、 Amazon SNS からEメールが届きます。 Amazon SNS トピックにサブスクライブされたメールアカウント。

    以下は、から送信された電子メールからの出力例です。 Amazon SNS 対応し、 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:80398EXAMPLE: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::80398EXAMPLE:user/JaneDoe-CodeCommit", } ] }