AWS Amplify がビルドに失敗したときの原因をメモ
はじめに
AWS AmplifyでReactアプリを作成しようとしたところ、ビルド実行時にエラーとなったので原因をメモ。
前提
エラーの内容
エラーは以下。リポジトリ名、アプリ名はay-s-○○○○
で伏せます。
2021-11-07T03:30:28.392Z [INFO]: # Cloning repository: https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/ay-s-○○○○ 2021-11-07T03:30:28.847Z [INFO]: Cloning into 'ay-s-○○○○'... 2021-11-07T03:30:38.226Z [INFO]: fatal: unable to access 'https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/ay-s-○○○○/': The requested URL returned error: 403 2021-11-07T03:30:38.229Z [ERROR]: !!! CustomerError: Unable to clone repository due to user error code: 128 2021-11-07T03:30:38.230Z [INFO]: # Starting environment caching... 2021-11-07T03:30:38.290Z [INFO]: # Environment caching completed Terminating logging...
要するに、
fatal: unable to access 'https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/ay-s-○○○○/': The requested URL returned error: 403
CodeCommitのリポジトリからcloneしようと思ったけどアクセスができません!!ということのようです。
エラーの原因
Amplify側に設定したサービスロールの内容が間違っていた。
以下サイトに同じ事例があった。
Unable to clone repo (403) at Build step · Issue #572 · aws-amplify/amplify-console · GitHub
サービスロールの設定箇所
Amplifyで「new app」を作成する画面で、サービスロールを選択する場所がある。
おそらく、ここで「new service role」のほうを選んでいれば問題ないと思うが、既存のロールを選んでしまったと思われる。
Amplifyに設定されているサービスロールの確認
「アプリの設定」→「全般」で確認できる。
サービスロールに適用されているポリシーの確認
IAMのコンソールからロールに設定されたポリシーの中身を確認すると、「Resource」に記載されているCodeCommitのARN名が間違っていた。(既に削除した、昔のリポジトリのものが入っていた)。
ここを修正した。
IAMポリシーに設定すべきCodeCommirのARN名確認方法
ARN名は「CodeCommit」の該当リポジトリ→「設定」で確認できる。
おわりに
IAMポリシーを修正し、無事デプロイが完了した。
関連記事
CodeCommitについて詳細
CodeCommitの使い方を記載した記事。 tomiko0404.hatenablog.com