APPENDIX: sca_buildspec.yaml の詳細

CodeBuildに対しどのように Safety に対する依存関係をチェックするように指示したのか疑問に思っていますか?

flask-app フォルダの下の sca_buildspec.yaml という名前のファイルをチェックすると、それを実現するために書かれた CodeBuild buildspec が表示されます。 sca-buildspec

SCA CodeBuild プロジェクトはこのファイルを検索し、必要なコマンドを実行します。

version: 0.1

phases:
  pre_build:
    commands:
      - echo Installing SCA tool...
      - pip install safety
  build:
    commands:
      - echo Entered the post_build phase...
      - echo Build completed on `date`
      - safety check -r requirements.txt --full-report

Buildspecs は、CodeBuild がビルドを実行するために使用するビルドコマンドと関連設定をまとめたものです。各セクションを順を追ってみましょう。

  • pre_build コマンドは、基本的にビルドの準備を実行する場所です。今回は CodeBuild にsafetyをインストールするように指示しました。これにより、CodeBuild はソフトウェアコンポジション分析を実行できます。

  • build コマンドは、requirements.txtSafety を使用して依存関係スキャンの実行を定義します。これは、docker イメージの作成中にインストールされる依存関係をリストします。

実行時に CodeBuild の依存関係をインストールすると、非効率的で時間がかかる場合があります。依存関係が既に確認されていて、ビルドを高速化するための準備が整った独自のカスタム CodeBuild イメージを作成することもできます。また、デフォルトの CodeBuild イメージの機能をさらに拡張するために以下を行うこともできます。(カスタムビルド環境を参照)