【Amplify】(Solved) Resource is not in the state stackUpdateComplete

schema.graphqlのテーブル構成を変更し、schemaの破壊的な更新を行うべく以下コマンドを実行したらエラーとなったので解決法をまとめました。

実行したコマンド

% amplify push --allow-destructive-graphql-schema-updates

エラー文

🛑 The following resources failed to deploy:
🛑 An error occurred during the push operation: /
Resource is not in the state stackUpdateComplete

AWS公式より以下の記事がアドバイスが上がっていました。

AWS Amplify での CloudFormation スタックの問題をトラブルシューティングする
AWS Amplify アプリケーションをデプロイしようとすると、「Resource is not in the state stackUpdateComplete」(リソースは stackUpdateComplete の状態ではありません) というような AWS CloudFormation エラーが表示されます。こ...

まずはCloudFormationを見に行きましょう!

CloudFormationのStacksを確認すると、おそらくStatusが「UPDATE_ROLLBACK_COMPLETE」となっています。

(「View nested」のトグルをoffにすると見やすくなります。)

Stack nameのところから詳細を開きます。

Eventsタブを開きます。

この中のStatusが×になっているところに注目し、Status reasonを確認します。

ここでは、以下の理由が上がっていました。

Parameters: [AuthCognitoUserPoolId] must have values
The following resource(s) failed to create: [UpdateRolesWithIDPFunctionRole, authnextjscalendar06e811c6]. 
The following resource(s) failed to update: [apinextjscalendar].

どうやらauthの設定がうまくいっていないようですね。

amplify update apiを実行します。

% amplify update api --allow-destructive-graphql-schema-updates
? Select from one of the below mentioned services: GraphQL

General information
- Name: nextjscalendar
- API endpoint: https://***.appsync-api.ap-northeast-1.amazonaws.com/graphql

Authorization modes
- Default: API key expiring Wed Oct 05 2022 23:00:00 GMT+0900 (Japan Standard Time): da2-***
- Amazon Cognito User Pool

Conflict detection (required for DataStore)
- Disabled

? Select a setting to edit Authorization modes
? Choose the default authorization type for the API API key
✔ Enter a description for the API key: · 
✔ After how many days from now the API key should expire (1-365): · 7
? Configure additional auth types? No

そして再度amplify push

% amplify push --allow-destructive-graphql-schema-updates

これにて解消しました!!

以上、お読みいただきありがとうございました。

コメント