AWS Amplify のビルド時にAWS CodeArtifactにあるnpmパッケージをインストールする
はじめに
AWS CodeArtifact にある npm パッケージを使用したプロジェクトを AWS Amplify でホスティングする際にビルドに一設定あったので、備忘録として残しておきます。
方法
前提条件
- AWS Amplify にホスティング済み
- AWS CodeArtifact に npm パッケージが登録されている
- AWS CodeArtifact にアクセスするための IAM ロールが作成されている
1. Amplify のビルド環境で AWS CLI2 を使えるようにする
Amplify のビルド時に AWS CLI2 を使えるようにします。
Amplify のビルド環境にAmazon Linux 2023
を選択している場合は、デフォルトで AWS CLI2 がインストールされています。
カスタムイメージ等を使っている場合は、ビルド環境に AWS CLI2 をセットアップする必要があります。
preBuild
フェーズで AWS CLI2 のセットアップを行うのがいいかと思います。
2. AWS CodeArtifact から npm パッケージインストールできる IAM ロールを Amplify サービスロールとして設定する
Amplify で AWS CodeArtifact から npm パッケージをインストールするためには、AWS CodeArtifact にアクセスするための IAM ロールを Amplify サービスロールとして設定する必要があります。
以下を参照して、Amplify サービスロール追加設定を行ってください。
3. Amplify のビルド時に AWS CodeArtifact login する
2ステップまで行ったら、Amplify のビルド時に AWS CLI2 を使用して AWS CodeArtifact へのログインが行えると思います。
npm install
前に AWS CodeArtifact にログインして、npm パッケージをインストールするようにします。
version: 1
frontend:
phases:
preBuild:
commands:
# npm install 前に AWS CodeArtifact にログイン
- aws codeartifact login --tool npm --repository foo --domain bar --domain-owner 1234567890 --region ap-northeast-1
- npm ci --cache .npm --prefer-offline
build:
commands:
- npm run build
# 以下省略
以上が AWS Amplify のビルド時に AWS CodeArtifact にある npm パッケージをインストールする設定でした。
おわりに
AWS Amplify で AWS CodeArtifact にある npm パッケージをインストールする方法について紹介しました。
npm レジストリからパッケージインストール必要がある場合は、対象の AWS CodeArtifact リポジトリに npm レジストリをアップストリームリポジトリを設定する必要があります。
必要に応じて設定を行ってください。
Discussion