AWS CodePipelineの途中のアーティファクトを確認・差し替える方法

記事タイトルとURLをコピーする

こんにちは。
アプリケーションサービス部、DevOps担当の兼安です 。

今回はAWS CodePipelineのちょっとしたテクニックをお話します。

本記事のターゲット

本記事は、AWS CodePipelineを構築中または構築して運用している方をターゲットとしています。
したがって、AWS CodePipelineの基本的な使い方や、AWS CodePipelineの構成要素については割愛しています。
ご了承ください。

AWS CodePipelineのアーティファクト

AWS CodePipelineにおいて、各ステージにおける入出力は「アーティファクト」と呼ばれます。

docs.aws.amazon.com

アーティファクトはAmazon S3に保存され、ステージ間で受け渡しされます。

CodePieplineとS3を介したアーティファクトの受け渡し

ソースステージでは、Gitリポジトリからのソースコードが出力(=出力アーティファクト)です。
ビルドステージでは、ソースステージから受け取ったアーティファクトを入力(=入力アーティファクト)とします。

ビルドしたらその結果が出力となります。
そして、デプロイステージではビルドステージの出力を入力アーティファクトとして、デプロイを行います。

CodePipelineでエラーが起きた場合、途中段階のファイルを見た方が解決が早いことがあります。
例えば、CodeBuildでbuildspec.ymlがnot foundのエラーが出た場合、ビルドステージの入力アーティファクトを見ることで、ビルドステージにどんなファイルが渡されているかを確認できます。

アーティファクトの確認と差し替え

では、実際にやってみましょう。
まず、ビルドステージでエラーが発生したとします。
CodePipelineのパイプライン画面で、BuildActionsをクリックします。

="CodePipelineの画面で、エラーが起きたステージをクリック

入力入力アーティファクトをクリックします。

エラーが起きたステージの入力アーティファクトをクリック

S3バケットの画面に遷移します。
ランダム文字列っぽい名前のファイル名が見つかるはずです。

S3バケット上のアーティファクト

これがアーティファクトです。
アーティファクトはZip圧縮されたファイルです。
これをダウンロードして解凍することで、ビルドステージにどんなファイルが渡っているのか確認することができます。
この動きは、デプロイステージでも同様です。

アーティファクトはZip圧縮されただけのファイル群なので、解凍・修正して再圧縮して同じ名前でS3上のファイルを上書きすることで、入力アーティファクトの差し替えが可能です。
アーティファクトを開いたら、そのバケットに移動し、同じファイル名でアップロードすれば上書きすることができます。

アーティファクトのバケットでアップロード

差し替えを行った後、CodePipelineのパイプライン画面でステージにある更新アイコンをクリックすることで、差し替えた入力アーティファクトで再実行をかけることができます。

差し替えした後にステージを再実行

このやり方は、次のような時に役立ちます。
例えばあなたがCI/CD担当だとしてアプリケーション担当が別の担当者だったとします。
buildspec.ymlやappspec.ymlに記述ミスがあった場合、アーティファクトの確認と差し替えを活用してエラーの原因と修正方法を自分で確認してからアプリケーション担当者に「こう直したら治ります」と伝えることができます。

まとめ

今回は、AWS CodePipelineの途中のアーティファクトを確認・差し替える方法についてお話しました。
CodePipelineをはじめとしたCI/CDパイプラインは作り込めば作り込むほど、原因が特定が難しくなります。
アーティファクトの確認と差し替えは、CodePipelineのトラブルシューティングに役立つと思います。

兼安 聡(執筆記事の一覧)

アプリケーションサービス部 DS3課所属
2025 Japan AWS Top Engineers (AI/ML Data Engineer)
2025 Japan AWS All Certifications Engineers
2025 AWS Community Builders
Certified ScrumMaster
PMP
広島在住です。今日も明日も修行中です。