POLアドベントカレンダー16日目担当、3度目のゲバラです。
15日目担当まーさん@takahashik0422の記事もぜひお読みください!
#ある日の出来事
私「よし!開発環境にamplify pushしよ!」
Amplify CLI「Parameters: [unauthRoleName] do not exist in the template」
私「CLIのバージョン上げるか」
Amplify CLI「一緒のエラーやで」
私「ファッ!?」
#amplify pushができなくなる
amplify pushはAmplifyバックエンド環境の設定をAmplify CLIでローカルからプッシュするコマンドです。
これができないとバックエンド環境を変更することができません。マジで困るやつです。
gihub pushできないとの同じくらい困ります。いやそれ以上です。
CLIは結構バグっていることが多いのでバージョンアップするとよくなることがありますがダメだった。
amplify pushすると以下のようなエラーが。。。
Parameters: [unauthRoleName] do not exist in the template
issueを見てみると
https://github.com/aws-amplify/amplify-cli/issues/2519
以下の手順を実施すると解決するそう
- amplify/backend/api/(アプリ名)/buildフォルダを削除
-
amplify api gql-compile
コマンドを実行
amplify api gql-compile
はapiのスキーマをコンパイルするためのコマンドです。このコマンドはamplify push
でも動いているはずなので1.のあとにpush実行しても問題ないはずです。
無事amplify push
できました。
#ある日の出来事2
私「よし!開発環境にamplify pushしよ」
Amplify CLI「Parameters: [hostedUIProviderCreds] must have values
」
私「おいおい困ったやつだな、CLIのバージョン上げるか」
Amplify CLI「一緒のエラーやで」
私「ヒョッ!?」
#amplify pushができなくなる2回目
2回目です。泣きそう。
CLIは結構バグっていることが多いのでバージョンアップするとよくなることがありますがダメだった(2回目)。
Parameters: [hostedUIProviderCreds] must have values
これまたissueを見てみると
https://github.com/aws-amplify/amplify-cli/issues/6021
-
amplify pull
をしてクラウドとリモードを同期してください
とのこと。
なんか間違ったことしてしまったのかも。
無事amplify pushできました。
#ある日の出来事3
私「よし!開発環境にamplify pushしよ!」
Amplify CLI「Unexpected token u in JSON at position 0
」
私「おいおいおいおいおいおい困ったやつだな、CLIのバージョン上げるか。。。。。。」
Amplify CLI「jsonString' argument missing or empty
」
私「。。。。。。」
#amplify pushができなくなる3回目
泣いた。
CLIは結構バグっていることが多いのでバージョンアップするとよくなることがありますがダメだった(3回目)。
An error occurred when pushing the resources to the cloud
Unexpected token u in JSON at position 0
An error occurred during the push operation: Unexpected token u in JSON at position 0
CLIのバージョンを上げてみると
'jsonString' argument missing or empty An error occurred during the push operation: 'jsonString' argument missing or empty
issueをみると同じように困っている人がいました。
今はclosedされてますが、見たときはopenになっていて調査中でした。
ただCLIが修正されてもそれでは解決せず、手動で操作が必要なところが出てきました。
やるべきことは、S3バケットから#current-cloud-backend.zipファイルをダウンロードします。このフォルダに#current-cloud-backend/api//buildにあるcloudformation-template.jsonファイルを追加します。それを再度ZipしてS3バケットにアップロードします。
その後、pushが動作するようになります。お役に立てたかどうか教えてください。
https://github.com/aws-amplify/amplify-cli/issues/6097#issuecomment-741896687
ダウンロードしてファイル追加して再アップロードか。。。。仕方ない。。。。
これでなんとかamplify push成功するかに見えましたがまたエラー。。。。
Parameters: [unauthRoleName] do not exist in the template
1回目と一緒のエラーですが同じ対応でも直りませんでした。
1回目のissueを追ってみると、どうやらamplify/backend/api/(アプリ名)/paramters.jsonに以下を追加しないといけない模様。
{
"authRoleName": {
"Ref": "AuthRoleName"
},
"unauthRoleName": {
"Ref": "UnauthRoleName"
}
}
無事amplify push
できました。
一件落着ならぬ三件落着
ただ、3回目に関しては、毎回手動でファイルをアップロードするとか無理です。しんどいです。助けてください。この対応さらっと書いてますが、三つとも12月中に発生して切り分けやら調査でめっちゃ時間持ってかれました。issueにこれはまれなコンステレーションで発生しますとか書いてあるのがツラい。でもAmplify使えねーってなるのも嫌なのでどうにかしたい。CLIのソースを覗くときがやってきそうです。
皆さんもどうかお気をつけください。
17日目はデザイナーおださん@odagiri_24です!ご期待ください!