2020/11/03

CloudWatch EventでCodeBuildを定時実行する

この記事ではCloudWatchEventを使用してCodeBuildを定時ビルドする方法を解説していきます。CodeBuildを定時実行させる方法が分からない人、AWS認定試験を受けようとしている方必見です!

CodeBuildを使用したことがないという方やCodeBuild上にまでプロジェクトを作成していないという方はこちらの記事もご覧ください!

CloudWatch EventでCodeBuildを定時実行する

CloudWatch Eventを使用してCodeBuildを定時実行させる方法を解説していきます。

まずはCodeBuildの該当のビルドプロジェクトのコンソール画面に遷移します。

「編集」のプルダウンメニューを開き、「ログ」を選択します。

編集プルダウンメニュー

ログを編集する画面に遷移したら、CloudWatchLogsにチェックが入っていることを確認しましょう。

そして、サービスロールのアクセス許可にもチェックが入っていることを確認し、入っていなければチェックを入れましょう。

確認が終わったら、「ログの更新」ボタンをクリックします。

ログ編集

CloudWatchEventのコンソール画面に遷移しましょう。サイドメニューのイベント>ルールを選択し、イベントルール一覧画面を表示させます。その中にある「ルールの作成」ボタンをクリックしましょう。

ルール一覧

ルール作成画面が表示されたら、「イベントソース」で「スケジュール」を選択します。Cron形式での記載もできるようですが、今回は「一定の速度」の方を選択し、イベントを発生させる時間を設定します。写真のものだと1分に一回イベントを発生させるという設定になります。

「ターゲット」では「CodeBuild プロジェクト」を選択します。

「プロジェクトARN」にはCodeBuildの該当のビルドプロジェクトのARNを入力します。

設定するCodeBuildのプロジェクトARNは以下のような形式になっています。アカウントIDはヘッダーの「サポート」を選択し、プルダウンリストが開くので、「サポートセンター」を選択します。するとサイドメニューに「Account number」と記載されているので、その数字をARNのAccount IDの部分に記載します。CodeBuildのARNの詳細に関してはこちらを参照して下さい。

arn:aws:codebuild:<region ID>:<account ID>:project/<CodeBuild プロジェクト名>

IAMロールを特に設定していなければ、「この設定のリソースに対して新しいロールを作成する」を選択し、IAMロール名をフォームに入力してください。

一通り入力が終わったら、「設定の詳細」ボタンをクリックします。

イベント設定

ルールの詳細設定画面が表示されたら、「名前」にこのイベントの名前を入力します。

「状態」では今回作成するイベントを有効にするかどうかを設定します。使用しない場合は非アクティブにしておきましょう。今回はチェックを入れて有効化します。設定を終えたら「ルールの作成」ボタンをクリックします。

ルールの詳細を設定

ルールの作成が完了しました!

ルール作成完了

まとめ

CloudWatch Eventを使用すれば決まった時間にCodeBuildを走らせることができるようです。CodeBuildに定義したコマンドをCronのように実行するということもできそうですね。