🟩
AWS Amplifyの「Failed to pull the backend」ビルド失敗エラーが出た場合の対応方法
背景
開発、検証、本番アカウントにてNext.js13のアプリケーションをホスティングする。その際にクロスアカウントのGitリポジトリ連携を行いたい。AWS Amplifyでホスティングするアプリケーションがそれぞれ別のリソース(別のアプリID)となるために、amplify pull
で自動生成される/amplifyフォルダをgitの追跡対象から外した。
Amplifyコンソールでデプロイを進めると、デプロイプロセスではなく、ビルドプロセスで失敗し、下記エラーを出力した。
✖ There was an error initializing your environment.
Failed to pull the backend.
要因
amplifyフォルダをすべてGitの追跡対象から外したことで、amplifyのリソース設定情報が記載されたファイルを見つけることができず、ビルドコマンドが正しく実行できなかった。
対策
Amplifyコンソール画面上の「ビルド設定」、もしくはamplify.ymlの設定の際に、amplify pull
コマンドを追加する。
amplifyリソースのバックエンドリソース名を明示的に指定し、設定ファイルをダウンロードすることで、通常通りビルドできるようになる。
version: 1
backend:
phases:
build:
commands:
- amplify pull --appId {YOUR APP ID} --envName {YOUR ENV NAME} -y
- amplifyPush --simple
frontend:
phases:
preBuild:
commands:
- yarn install
build:
commands:
- env | grep -e {YOUR ENVIRONMENT KEY NAME} >> .env.production
- yarn run build
artifacts:
baseDirectory: .next
files:
- '**/*'
cache:
paths:
- node_modules/**/*
amplifyフォルダにはリソースを特定するために下記のような重要ファイルがあるため、安易にamplifyフォルダを丸ごと.gitignoreに含めない方が良い。
- /amplify/team-provider-info.json
- /amplify/backend/backend-config.json
- /amplify/.config/project-config.json
感想
ローカル環境では正常に動作するため、何事かと思ったがシンプルに設定ファイルが欠如しているだけでした。エラーメッセージだけでは原因の特定が難しかったので、本記事が同じエラーに遭遇した人の参考になれば幸いです。
Discussion