LoginSignup
27
6

More than 3 years have passed since last update.

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

以下の手順を実施すると解決するそう

  1. amplify/backend/api/(アプリ名)/buildフォルダを削除
  2. 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です!ご期待ください!

27
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
6