AWS CodePipeline で S3 バケットにデプロイする index.html ファイル等の zip ファイルへの変換を防ぐ方法

2022.06.16

困っていた内容

CodePipeline で index.html ファイルを CodeCommit にプッシュを行い、CodeDeploy で指定した S3 バケット(静的 Web サイト)にデプロイを行うように設定をしていますが、デプロイをした index.html が zipファイル になってしまいます。

zip ファイルのままだと、S3 の静的 Web サイトにて、Web サイトが正しく表示されません。

デプロイをした index.html が zipファイル にならないために、どのように対応すれば良いのか教えて下さい。

どう対応すればいいの?

CodePipeline の作成において、「デプロイステージを追加する」の"デプロイする前にファイルを抽出する"について、チェック(選択)がされているかご確認ください。

Codepipeline が実行されている際、パイプラインの AWS CodeCommit のアクションが、ソースアーティファクトを圧縮しておりその結果、ファイルが ZIP ファイルに変換されます。

そのため、S3 バケットにデプロイする前に、デプロイ対象ファイルが解凍されてからデプロイされるように"デプロイする前にファイルを抽出する"のチェック(選択)を行ってください。

参考資料

注記

[デプロイ前にファイルを抽出] を選択しないと、デプロイに失敗します。

これは、パイプラインの AWS CodeCommit アクションがソースアーティファクトを圧縮しており、ファイルが ZIP ファイルになっているためです。