0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

S3へのコードのアップロードを検知してCodeBuildを実行するCodePipelineの作成

Last updated at Posted at 2025-01-02

記事の概要

本記事では以下の構成となるようAWSリソースを作成していきます。

image (3)-2.png

以下の記事で、S3に配置したソースコードからDockerイメージを作成し、ECRへpushする部分をCodeBuidで自動化しました。
DockerイメージのビルドとAmazon ECRへのプッシュをCodeBuildで自動化する

この状態だと、S3にzip化したソースコードをアップロードした後、逐一CodeBuildプロジェクトを実行する必要があります。本記事では、S3へのアップロードを検知したら自動でCodeBuildプロジェクトを実行するようにCodePipelineを設定するまでの手順を紹介します。

作成済みリソースの変更

CodePipelineでS3へのソースコードのアップロードを検知し、CodeBuildの実行をするにあたって、S3とCodeBuildをそれぞれ変更する必要があります。

S3バージョニングの有効化

下記のとおり、CodePipelineのソースにS3を指定する場合、S3のバージョニングを有効化する必要があります。

注記
ソースバケットを作成するときは、バケットでバージョニングを有効にしてください。
https://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/action-reference-S3.html

バージョニングを有効化していない場合は、該当のS3バケットの「プロパティ」タブから変更します。

image (4).png

  • バケットのバージョニングで「編集」ボタンをクリックし、バケットのバージョニングを「有効にする」を選択

image (5).png

ソースコードをzip化する

CodePipelineでは、必要なソースコードをzipで圧縮する必要があります。今回は、app.pyDockerfile , buildspec.yml の3つのファイルを圧縮して再アップロードします。

Codebuildの変更

ソースコードのzip化に合わせて、CodeBuildプロジェクトのソースの設定を変更します。

  • ビルドプロジェクトを開いて「編集」ボタンをクリックし、「ソース」セクションで「S3 オブジェクトキーまたは S3 フォルダ」にアップロードするzipファイルの名前を入力

image (6).png

CodePipelineの設定

今回は、ソースコードの置き場などを設定する「ソースステージ」と、Codebuildで行っていた「ビルドステージ」の2つを設定します。デプロイステージの作成はスキップします。

ソースステージの設定

  • CodePipelineの画面で「パイプラインを作成する」ボタンをクリック
  • Create optionsは「Build custom pipeline」を選択

image (8).png

  • パイプライン名は任意の値を入力し、他はデフォルトの設定のままにする
  • ソースの設定で、ソースプロバイダーは「Amazon S3」を選択し、S3の構成に従って「バケット」と「S3 オブジェクトキー」を入力する。検出オプションは「Amazon CloudWatch Events (推奨)」を選択

S3 オブジェクトキーには、アップロードするzipファイル名まで含めること

image (12).png

ビルドステージの設定

  • ビルドのプロバイダーは「Other build providers」を選択し、「AWS CodeBuild」を指定して、プロジェクト名に作成済みのビルドプロジェクトを指定する

image (14).png

  • デプロイステージは追加しないため、「スキップする」ボタンをクリックしてパイプラインを作成する

パイプラインが作成されると同時に、実行されます。

image (16).png

動作確認

S3の指定したパスに、指定したファイルをアップロードする(今回だと、<s3バケット名>/build-resourceartifact.zip をアップロードする)と、自動でパイプラインのなかでビルドプロジェクトが実行されます。

パイプラインの実行が成功したら、ビルドプロジェクトが実行され、buildspecで指定したECRに新しいイメージが追加されているはずなので、それぞれ確認してみましょう。

  • パイプライン

image (15).png

  • ビルドプロジェクト

image (17).png


この記事はここまでとなります。

Next:

ここまでの設定内容をIaCで実装する▼
CDKで一発作成!S3→Codebuild→ECRでDockerイメージをpushするCodePipeline

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?