付録:license_check_buildspec.yaml の詳細

CodeBuild が Python License Checkerに対して依存関係をチェックするよう設定するにはどうしたらよいでしょうか?

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

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

version: 0.1

phases:
  pre_build:
    commands:
      - echo Installing License Checker Tool...
      - pip install liccheck
      - pip install -r requirements.txt
  build:
    commands:
      - echo Entered the post_build phase...
      - echo Build completed on `date`
      - liccheck -s license_strategy.ini -r requirements.txt

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

  • pre_build コマンドは、基本的にビルドの準備を行う場所です。この場合、CodeBuild にPython ライセンスチェッカー (liccheck)をインストールするように指示しました。これにより、CodeBuild は依存関係に対してライセンス分析を実行できます。
  • build コマンドは、requirements.txtliccheck を使用して依存関係スキャンの実行を定義します。これは、docker イメージの作成中にインストールされる依存関係をリストします。

また、license_check_buildspec.yaml と同じフォルダに license_strategy.ini という名前のファイルがあり、これはどのライセンスを許可、無許可、除外するかを定義します。

# Authorized and unauthorized licenses in LOWER CASE
[Licenses]
authorized_licenses:
        bsd
        new bsd
        bsd license
        new bsd license
        simplified bsd
        apache
        apache 2.0
        apache software license
        gnu lgpl
        lgpl with exceptions or zpl
        isc license
        isc license (iscl)
        mit
        mit license
        python software foundation license
        zpl 2.1

unauthorized_licenses:
        gpl v3

[Authorized Packages]
# Python software license (see http://zesty.ca/python/uuid.README.txt)
uuid: 1.30
importlib-metadata: *

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