AWS SAAを2ヶ月のスキマ時間で取得した話(2020年2月)
AWSのAmplifyを使う時、バージョンが更新されず一部の新機能が使えずに苦労したので、その解決までの手順を共有します。
$ node -v
v12.12.0
$ npm -v
6.14.8
$ amplify -v
1.7.6 → 今回はこれをバージョンアップしたかった
私の解決前のAmplify CLIのバージョンは 1.7.6 でした。(最後に触ったのが1、2年前でした。。)
2020年11月時点での最新バージョンは 4.32.1 で、amplify import auth などの新しい機能も増えていたのでひとまずバージョンアップしようとしたのですが、最新バージョンが反映されませんでした。
$ amplify -v
,1.7.6 → アップデート前のバージョン,
$ npm install -g @aws-amplify/cli → 公式に従ってAmplify CLIのnpmインストール
npm WARN deprecated @graphql-toolkit/common@0.6.6: GraphQL Toolkit is deprecated and merged into GraphQL Tools, so it will no longer get updates. Use GraphQL Tools instead to stay up-to-date! Check out https://www.graphql-tools.com/docs/migration-from-toolkit for migration and https://the-guild.dev/blog/graphql-tools-v6 for new changes.
npm WARN deprecated @graphql-toolkit/common@0.9.7: GraphQL Toolkit is deprecated and merged into GraphQL Tools, so it will no longer get updates. Use GraphQL Tools instead to stay up-to-date! Check out https://www.graphql-tools.com/docs/migration-from-toolkit for migration and https://the-guild.dev/blog/graphql-tools-v6 for new changes.
npm WARN deprecated core-js@2.6.11: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.
npm WARN deprecated request-promise@4.2.6: request-promise has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
/usr/local/bin/amplify -> /usr/local/lib/node_modules/@aws-amplify/cli/bin/amplify
> @aws-amplify/cli@4.32.1 postinstall /usr/local/lib/node_modules/@aws-amplify/cli
> node scripts/post-install.js
----------------------------------------
Successfully installed the Amplify CLI
----------------------------------------
JavaScript Getting Started - https://docs.amplify.aws/start
Android Getting Started - https://docs.amplify.aws/start/q/integration/android
iOS Getting Started - https://docs.amplify.aws/start/q/integration/ios
Amplify CLI collects anonymized usage data, which is used to help understand
how to improve the product. If you don't wish to send anonymized Amplify CLI
usage data to AWS, run amplify configure --usage-data-off to opt-out.
Learn more - https://docs.amplify.aws/cli/reference/usage-data
+ @aws-amplify/cli@4.32.1
updated 17 packages in 38.441s
$ amplify -v
,1.7.6 → インストールが成功していそうだがバージョンは変わらず
コンソールでの出力を見る限りではインストールは成功しているのですが、CLIのバージョンは古いままで新しいコマンドも実行することができませんした。
私の事象では、permission errorが発生していたわけではないのですが、sudo をつけてAmplify CLIのインストールを実行してみました。
sudo, npm install -g @aws-amplify/cli
コンソール出力はsudoをつけないnpm installと同じでした。この時点ではまだバージョンは反映されていません。
次にsudo権限でAmplify CLIのバージョンを確認してみました。
$ amplify -v
Initializing new Amplify CLI version...
Done initializing new version.
Scanning for plugins...
Plugin scan successful
4.32.1
$ amplify -v
1.7.6
このタイミングで最新バージョンが反映されたような出力が確認できました。ただしsudo権限での実行時のみ最新バージョンになっており、問題は解決していません。
sudoでのみ最新バージョンが反映されていることが気になり、以下コマンドを実行しました。
sudo npm install -g @aws-amplify/cli ,–unsafe-perm=true
–unsafe-perm とはパッケージスクリプトの実行時に UserID/GroupID を切り替えるかどうかを制御する引数です。sudoで実行するときはデフォルトでfalseになるので、明示的にtrueを指定してインストールしてあげます。
ちなみにこの時点でもamplify CLIのバージョンは変わっていません。
$ amplify -v
1.7.6
$ sudo amplify -v
4.32.1
手を尽くした感があったので、試しに再起動してみました。このタイミングでやっとAmplify CLIのバージョンが最新に反映されました!
$ amplify -v
4.32.1
┌──────────────────────────────────────────────────────────────┐
│ @aws-amplify/cli update check failed │
│ Try running with sudo or get access │
│ to the local update config store via │
│ sudo chown -R $USER:$(id -gn $USER) /Users/ユーザ名/.config │
└──────────────────────────────────────────────────────────────┘
$ sudo chown -R $USER:$(id -gn $USER) /Users/ユーザ名/.config
$ amplify -v
4.32.1
そして、通常権限で最新バージョンが反映されたとともに .config ディレクトリへの権限付与を求められました。
amplifyコマンドを実行する際にバージョンアップデートの有無を確認するためにアクセスが必要っぽいので、指示に従って権限を付与します。
この状態でやっと問題なく最新バージョンでAmplify CLIを扱えるようになりました。。
Amplify CLIのバージョンアップが反映されない問題の解決方法をご紹介しました。
私の場合は最後に触っていたのがかなり前でメジャーバージョンが3つくらい離れていたので、今回遭遇したエラーはかなり特異な気がします。
もし同じ問題に遭遇して困っている方の参考になれば幸いです。
Amplify CLI をインストールする際に permission denied 的なエラーが発生する問題 – Qiita
AWS SAAを2ヶ月のスキマ時間で取得した話(2020年2月)
【AWS Summit2019 Day1】基調講演:デジタル変革の最前線で選ばれ続けるクラウドへ
Lightsail + CloudFront + Route53 を用いたWordPress構築時にCSSが適用されない
Lightsail + CloudFront + Route53 を用いたWordPress構築時に新規投稿ができない
Lightsail + CloudFront + Route53 を用いたWordPress構築時にライブプレビューが表示されない
Lightsail + CloudFront + Route53 を用いたWordPress構築時に403が返ってくる
AWS Lightsail + CloudFront + Route53 でWordPressを構築した話