🟩

AWS Amplifyの「Failed to pull the backend」ビルド失敗エラーが出た場合の対応方法

2024/06/01に公開

背景

開発、検証、本番アカウントにて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