こんにちは!DA(データアナリティクス)事業本部 インテグレーション部の大高です。

先日ハマった「CodePipelineを利用した場合にシンボリックリンクが想定外の動きをすることを知った」という話の紹介です。

何が起きたのか?

CodeCommit、CodeBuild、CodePipelineを利用しています。また、CodeCommit上にはsymlink(シンボリックリンク)でパスを通したmoduleの参照をしているPythonのソースコードがコミットされています。

CodePipelineでこのソースコードに対するテストコードを動かそうとしたした際に、ローカル環境では問題なくテストコードが動くのに、CodePipeline上ではmoduleが見つからない旨のビルドエラーが起きている、という話を聞いて調査してみたのが発端です。

## bar-linkがsymlink。bar-linkが見つからない旨のエラーが出る。
from bar-link import foo

ビルドエラー時のlsコマンドのログを見てみると、どうもsymlinkが実体を持っていそうに見えるということが分かった時点で、下記の記事を見つけました。

今回は、どうもこのケースに当てはまりそうだったので、こちらの記事を参考にさせて頂き、検証を行ってみました。

#aws #クラウド

[小ネタ]CodePipeline上でシンボリックリンクを利用していたコードが想定外の動きをした話 | Developers.IO
2.40 GEEK