翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS CodeCommit イベントからカスタムアクションを実行する
作成者: Abdullahi Olaoye (AWS)
環境:PoC またはパイロット | テクノロジー: DevOps; 管理とガバナンス | AWS サービス: AWS CodeCommit、Amazon SNS |
[概要]
注意: AWS CodeCommit は、新規のお客様では利用できなくなりました。の既存のお客様は、通常どおりサービスを AWS CodeCommit 引き続き使用できます。詳細はこちら
AWS CodeCommit リポジトリを使用してコードを保存する場合、リポジトリをモニタリングし、特定のイベントが発生したときにアクションのワークフローを開始できます。例えば、コミット内のコード行にユーザーがコメントしたときに E メール通知を送信するか、コミット後に Lambda AWS 関数を起動してリポジトリコンテンツでセキュリティスキャンを実行することができます。このパターンは、カスタムアクションの CodeCommit リポジトリを設定するステップの概要を示しています。このパターンは、AWS CodeCommit 通知ルールを使用して目的のイベントをキャプチャし、これらのイベントを設定済みのターゲットに送信します。
前提条件と制限
前提条件
アクティブ AWS アカウント。
Git コマンドに精通します。
AWS CodeCommit、セットアップします。手順については、「 のセットアップAWS CodeCommit」を参照してください。
(推奨) AWS コマンドラインインターフェイス (AWS CLI) がインストールされ、設定されています。手順については、「 の開始方法」を参照してくださいAWSCLI。
アーキテクチャ
ツール
AWS サービス
AWS CodeCommit は、セキュアな Git ベースのリポジトリをホストするフルマネージド型のソースコントロールサービスです。これにより、安全でスケーラブルなエコシステムでチームがコード上でコラボレーションすることが容易になります。 CodeCommit は、独自のソースコントロールシステムを運用したり、インフラストラクチャのスケーリングを心配したりする必要がなくなります。
Amazon Simple Notification Service (Amazon SNS) は、アプリケーション、エンドユーザー、デバイスがクラウドから通知を瞬時に送受信できるようにするウェブサービスです。Amazon SNS は、ハイスループット、プッシュベースの many-to-manyメッセージングのトピック (通信チャネル) を提供しています。Amazon SNSトピックを使用すると、パブリッシャーは Amazon Simple Queue Service (Amazon SQS) キュー、AWSLambda 関数、HTTP/S ウェブフックなど、並列処理のためにメッセージを多数のサブスクライバーに配信できます。Amazon を使用してSNS、モバイルプッシュ、、SMSおよび E メールを使用してエンドユーザーに通知を送信することもできます。
エピック
タスク | 説明 | 必要なスキル |
---|---|---|
CodeCommit リポジトリを作成します。 | CodeCommit コンソールまたは AWSCLIを使用して CodeCommit リポジトリを作成します。手順については、 CodeCommit 「リポジトリの作成」を参照してください。 | DevOps エンジニア |
コンテンツを CodeCommit リポジトリにプッシュします。 | リポジトリを作成したら、Git コマンドを使用してリポジトリにコンテンツを追加します。既存の Git リポジトリのコンテンツ、またはローカルのバージョン管理されていないコンテンツをコンピューターから移行できます。手順については、「リポジトリにファイルを追加する」または「 に移行するAWS CodeCommit」を参照してください。 | DevOps エンジニア |
タスク | 説明 | 必要なスキル |
---|---|---|
SNS トピックを作成します。 | このSNSトピックでは、 からイベントを受け取ります CodeCommit。手順については、「Amazon SNSトピックの作成」を参照してください。 | クラウドアーキテクト、 DevOps エンジニア |
カスタムアクション用のリソースを作成します。 | カスタムアクションを実行するには、対応するリソースを作成する必要があります。例えば、カスタムアクションが Lambda コードを実行してSQSキューにメッセージを送信する場合は、Lambda 関数とSQSキューを作成する必要があります。E メールやSMS通知などのアクションにはリソースは必要ありません。詳細については、作成するリソースタイプのAWSドキュメントを参照してください。 | クラウドアーキテクト、 DevOps エンジニア |
カスタムアクションリソースをSNSトピックにサブスクライブします。 | カスタムアクションに応じて、適切なプロトコルのサブスクリプションを作成します。例えば、E メール通知の E メールアドレス、カスタムコードを実行する Lambda 関数、Amazon にイベントを送信するSQSキューをサブスクライブしますSQS。E メールや などのサブスクリプションプロトコルではSMS、E メールまたは電話番号にそれぞれ送信されるリンクからサブスクリプションを確認する必要があります。手順については、「Amazon SNSトピックのサブスクライブ」を参照してください。 | クラウドアーキテクト、 DevOps エンジニア |
タスク | 説明 | 必要なスキル |
---|---|---|
CodeCommit リポジトリの通知ルールを作成します。 | 通知ルールを作成するときは、通知を開始する Git イベントを選択し、SNSトピックをターゲットタイプとして選択してから、前に作成したSNSトピックを選択します。複数のデータリポジトリへのリンクを設定することもできます。手順については、通知ルールの作成 を参照してください。 | DevOps エンジニア |
カスタムアクションをテストします。 | 通知を開始するように設定されたイベントのいずれかを実行します。たとえば、プルリクエストをトリガーとして選択した場合は、プルリクエストを作成します。カスタムアクションが実行されているはずです。例えば、SNSトピックに E メールアドレスをサブスクライブした場合、E メール通知を受け取る必要があります。 | DevOps エンジニア |