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 トリガーではサポートされていません。
トピック
リポジトリの Amazon SNS CodeCommitトピックへのトリガーを作成する (コンソール)
https://console.aws.amazon.com/codesuite/codecommit/home
で CodeCommit コンソールを開きます。 -
リポジトリで、リポジトリイベントのトリガーを作成するリポジトリを選択します。
-
リポジトリのナビゲーションペインで、[設定] を選択し、[トリガー] を選択します。
-
[トリガーの作成] を選択してから、次の操作を行います。
-
トリガー名に、トリガーの名前 (例:
MyFirstTrigger
) を入力します。 -
イベントで、Amazon SNSトピックが通知を送信するトリガーとなるリポジトリイベントを選択します。
[すべてのリポジトリイベント] を選択すると、他のイベントは選択できません。イベントのサブセットを選択するには、[すべてのリポジトリイベント] の選択を解除し、リストから 1 つ以上のイベントを選択します。たとえば、ユーザーが CodeCommit リポジトリにタグやブランチを作成した場合にのみトリガーを実行するには、[すべてのリポジトリイベント] の選択を解除し、次に [ブランチまたはタグを作成する] を選択します。
-
トリガーをリポジトリのすべてのブランチに適用する場合は、[ブランチ] で選択を空白のままにします。このデフォルトのオプションでは、トリガーがすべてのブランチに自動的に適用されます。このトリガーを特定のブランチにのみ適用する場合は、リポジトリブランチのリストから最大 10 個のブランチ名を選択します。
-
使用するサービスを選択するで、Amazon SNSを選択します。
-
Amazon SNSで、リストからトピック名を選択するか、トピックARNの を入力します。
注記
Amazon SNS FIFO (先入れ先出し) トピックは、 CodeCommit トリガーではサポートされていません。タイプが Standard に設定されている Amazon SNSトピックを選択する必要があります。
-
カスタムデータで、Amazon SNSトピックによって送信される通知に含める任意の情報を指定します (たとえば、開発者がこのリポジトリで開発について話し合うときに使用する IRCチャネル名)。このフィールドは文字列です。これは動的パラメータを渡すために使用することはできません。
-
-
(オプション) [トリガーのテスト] を選択します。このステップは、 CodeCommit と Amazon SNSトピック間のアクセスが正しく設定されていることを確認するのに役立ちます。Amazon SNSトピックを使用して、リポジトリのデータを使用してテスト通知を送信します。実際のデータがない場合は、テスト通知サンプルデータが使用されます。
-
[Create trigger (トリガーを作成する)] を選択して、トリガーの作成を完了します。
CodeCommit リポジトリの Amazon SNSトピックへのトリガーを作成する (AWS CLI)
コマンドラインを使用して、誰かが CodeCommit リポジトリにコミットをプッシュしたときなどのリポジトリイベントに応答して Amazon SNSトピックのトリガーを作成することもできます。
Amazon SNSトピックのトリガーを作成するには
-
プレーンテキストエディタを開き、以下を指定するJSONファイルを作成します。
-
Amazon SNSトピック名。
注記
Amazon SNS FIFO (先入れ先出し) トピックは、 CodeCommit トリガーではサポートされていません。タイプが Standard に設定されている Amazon SNSトピックを選択する必要があります。
-
このトリガーで監視するリポジトリとブランチ。(ブランチを指定しない場合、トリガーはリポジトリのすべてのブランチに適用されます。)
-
このトリガーをアクティブ化するイベントです。
ファイルを保存します。
例えば、2 つのブランチ、
main
および の という名前の Amazon SNSトピックにすべてのリポジトリイベントを発行MyDemoRepo
する という名前のリポジトリMySNSTopic
のトリガーを作成するには、次のようにします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に属性として追加されます。 -
(オプション) ターミナルまたはコマンドラインプロンプトで、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": [] }-
ターミナルまたはコマンドプロンプトで、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
" } -
トリガーの設定を表示するには、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" } ] } -
トリガー自体の機能をテストするには、トリガーを設定したリポジトリにコミットを作成してプッシュします。Amazon SNSトピックからのレスポンスが表示されます。例えば、E メールを送信するように Amazon SNSトピックを設定した場合、トピックにサブスクライブしている E メールアカウントに Amazon からの SNS E メールが表示されます。
以下は、リポジトリへの CodeCommitプッシュSNSに応答して Amazon から送信された E メールからの出力例です。
{ "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
", } ] }