amplify + container-base api を使ってハマったメモ
初めてのzennへの投稿です。
今日ハマったことをメモ書き的に残しておきます。
このメモが誰かの役に立てば幸いです。
amplify api addで追加するときのの名前は小文字のみでないといけない
amplify push するときにecrの作成でこけました。
amplify-cliで作成してくれる AdminQuery とかにならってAdminServiceとかつけたらダメですってお話です。
amplify status の変更検知のトリガーが謎
amplify/backend/api/{service name}/src
配下を修正したらamplify statusが Update になる。
でもamplify push を実行してもsrc配下のファイルをデプロイしてくれない。
自分でsrcをzip圧縮してs3にあげましょう。
s3のパスは amplify/backend/api/{service name}/parameters.json
に記載があります。
Docker hub のrate limit でこける。
code build
で早速こけました。
toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit
最初にamplify pushを実行したときに buildspec.yml ができていたので、よしよし、こいつにdocker loginを追加して・・・
は大間違い、
再度amplify push
を実行するとで修正が無かったことにしてくれます。
結局でecrを別で構築して、ベースイメージをそちらにコピーすることに。
そしたらecrからのdocker pull でこける。
error pulling image configuration: denied: User: arn:aws:sts::xxxx:assumed-role/xxxxx/xxxx is not authorized to perform: ecr:GetDownloadUrlForLayer on resource: arn:aws:ecr:ap-northeast-1:xxxx:repository/xxxx
これはおそらくバグ
codebuildのロールのインラインポリシーが間違ってる。
マネコンで直接'ecr:BatchGetDownloadUrlForLayer'となっているところをecr:GetDownloadUrlForLayer
に修正しました。
standard_init_linux.go:211: exec user process caused "exec format error"
Dockerfileに書いたRUNで これはもはやamplifyは関係ないんだけど、
私がm1マックでpullしたイメージをtagつけしてecrにあげていたのでアーキテクチャがarmになっていて、codebuildで扱えなかったって話でした。
全然纏まってないですが、生年祝いに招待されているので今日はここまで。
Discussion