Closed2
AmplifyでResourceNotReady: Resource is not in the state stackUpdateComplete.に出会った時
長らくスルーしていたがどうやら解決できそうな手順がわかったのでメモ
解決できそうというか、原因を特定する方法
実プロダクトで起こっているためセキュリティの懸念上スクショは添付できませんがうまく察してもらえれば
手順
- もしログを見て明確にエラーが吐き出されていたらそこを治す
- 明らかに他にエラーが出てないのに、表題のエラーが出た場合はまずAmplify管理画面のバックエンドの該当環境の詳細を開く
- 概要欄の最新のデプロイアクティビティの右上にあるCloudFormationで表示をクリック
- 表示されたもののイベントタブをクリック。するとCloudFormationで実行されたイベントの一覧が見れる
- 最新のものはたいてい状況の理由などが出ていないが、スクロールすると理由が書かれているものが隠れていたりする(これがログに吐かれてないことが厄介な原因)。理由がわかったらそれを元に解決法を探る
ちなみに今回実際にハマったのは複数環境ある場合にLambda Functionの新機能SSMを使っていたのが原因。
最初にセットアップした環境ではうまく動いていたが、実はこのセットアップ情報がマージしても引き継がれず、別環境下で参照エラーを起こしていた。
解決するには手元で環境を切り替えて
$ amplify update function
で設定していたシークレット変数を一個ずつ設定していけばOK
するとAWS Systems Managerのパラメータストアに各環境ごとのシークレット変数が作成されてビルドが通るようになる
つまり今回はAmplifyの新機能が複数環境に完全に対応できていなかったのに見事にハマったという感じでした。と言いつつシークレット変数は環境ごとに変わるのが普通ではあるので正しい挙動なのかもしれないという気持ちもある(注意書きとかで出してほしかったところ)
このスクラップは2022/09/26にクローズされました