CodePipelineのパイプラインクローン機能でステージ設定前に即実行されて焦った話

2020.12.18

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

いわさです。

CodePipelineを使っていて、本番のパイプラインからステージングのパイプラインを作成(またはその逆)する際に、「パイプラインをクローンする」機能を使うと、クローン元の設定で即実行されて成果物が上書きされてしまいます。
シーンによっては注意しなければならないと思うので記しておきます。

パイプラインのクローン

各パイプラインの詳細画面内に「パイプラインをクローンする」のボタンがあります。
このボタンを使うと、ソースステージ・ビルドステージ・デプロイステージの設定を引き継いでパイプラインを作成してくれるので複雑なステージ設定をしていた場合でもベースとして利用することが可能なので便利です。

今回は本番環境のパイプラインを流用して、ステージング環境のパイプラインを構築しようと思います。

クローンしました。

よく見ると、既に実行が始まっています。

しまった。

成果物(hoge.zip)が更新されタイムスタンプが変わってしまいました。

今回のサンプルのデプロイステージはS3へ出力するのみでしたが、これが本番サーバーへのデプロイとか設定されているとちょっと怖いなと感じました。

即実行は回避できなさそう

クローン作成後に、「実行を停止」から中断し、ソースステージ・ビルドステージ・デプロイステージを調整後に、再実行するようにしました。

まとめ

お客様環境など、重要な環境で無計画な安易なクローンをしないように気をつけましょうというお話でした。