AmplifyでNuxt.jsのhello worldを表示させる
先日初めてAWS Amplifyを触りました。いろいろよしなにやってくれるサービスですが、なにをどうすればいいのか理解しづら部分もあったので、できるだけわかりやすくhello worldを表示させるまでの過程を記述します。
結局なにをするサービスなのか?
かなりざっくりですが、フロントからバックまでよしなに構築してくれるフレームワークだと思っています。
フロントエンドに関しては、reactやvueなどで記述されたフロントエンドリソースをテストからデプロイまでしてくれます。バックエンドに関しては、Amplifyが提供してくれている機能(認証、データベース、APIなど)であれば、Amplify CLIというコマンドラインによって対話形式で簡単に利用することができます。
こういったサービスがなかったら、AWSリソースを自身で構築して繋ぎ込みをしなければ行けませんでした。そこを簡単に行えるようにしてくれるサービスぐらいに捉えておけばいいかなと思います。
Nuxt.jsでhello world
フロントとバックを構築してくれると言いましたが、今回はNuxt.jsでフロントを構築するところまでやっていきます。5〜10分ぐらいでさくっと作っていきましょう。
※Node.jsインストール済前提で進めます
Nuxtプロジェクトの作成
公式ドキュメントにしたがってプロジェクトを作成。
$ npx create-nuxt-app nuxt-amplify-sample create-nuxt-app v3.2.0 ✨ Generating Nuxt.js project in nuxt-amplify-sample ? Project name: nuxt-amplify-sample ? Programming language: JavaScript ? Package manager: Npm ? UI framework: Bootstrap Vue ? Nuxt.js modules: (Press <space> to select, <a> to toggle all, <i> to invert selection) ? Linting tools: ESLint, Prettier ? Testing framework: None ? Rendering mode: Single Page App ? Deployment target: Server (Node.js hosting) ? Development tools: (Press <space> to select, <a> to toggle all, <i> to invert selection)
この時点でローカル表示できることを確かめてください。
Amplify CLIインストールとユーザー作成
Amplify CLIをインストールします。
$ npm install -g @aws-amplify/cli
amplify -v でバージョンが確認できたらOKです。
続いてAmplify CLIで使用するユーザーを作成します。既存のユーザーを使う場合は不要です。
$ amplify configure Follow these steps to set up access to your AWS account: Sign in to your AWS administrator account: https://console.aws.amazon.com/ Press Enter to continue Specify the AWS Region ? region: ap-northeast-1 Specify the username of the new IAM user: ? user name: amplify-cli-user Complete the user creation using the AWS console https://console.aws.amazon.com/iam/home?省略 Press Enter to continue Enter the access key of the newly created user: ? accessKeyId: ******************** ? secretAccessKey: **************************************** This would update/create the AWS Profile in your local machine ? Profile Name: amplify-user
対話形式でユーザーが作成されます。途中AWSコンソール画面が開くので、そこでユーザーを作成します。作成後、認証情報をcsvダウンロードしてコマンドラインに打ち込んだら終わりです。これでこのユーザーの情報が~/.aws/ のcredentialsとconfigに追記されます。
Amplify初期設定を行う
対話形式でamplifyの初期設定を行います。
$ cd [作成したプロジェクト] $ amplify init Note: It is recommended to run this command from the root of your app directory ? Enter a name for the project NuxtAmplifySample ? Enter a name for the environment dev ? Choose your default editor: Visual Studio Code ? Choose the type of app that you're building javascript Please tell us about your project ? What javascript framework are you using vue ? Source Directory Path: . ? Distribution Directory Path: dist ? Build Command: npm run build ? Start Command: npm run start Using default provider awscloudformation For more information on AWS Profiles, see: https://docs.aws.amazon.com/cli/latest/userguide/cli-multiple-profiles.html ? Do you want to use an AWS profile? Yes ? Please choose the profile you want to use amplify-user
無事成功するとamplifyディレクトリとamplify.jsonが作成されます。
設定したビルドコマンドはamplify/.config/project-config.jsonに記載されています。(これが何に使用されているかはわからないです。変な値を設定してもビルドできたので、、)設定したユーザー情報はamplify/.config/local-aws-info.jsonに記載されています。
この時点でAmplifyのコンソール画面からプロジェクトが作成されたことを確認できます。
またcloudformationでスタックが作成されたことも確認できます。このスタックによってS3バケットとIAMロールが作成されます。
Gitにあげる
ソースとしてはそろったのでGitにあげます。今回はGitHubを使用しました。Gitを使用しない方法もありますが、今回は割愛します。
デプロイする
Amplifyのコンソール画面からGitと連携させてデプロイしていきます。画面の通りに入力していきます。 このままのビルド設定だとaccess diniedとなってしまいますが、いったんこのまま進めます。
ビルド設定はamplify.ymlに記述されています。amplify.ymlをプロジェクトの中にファイルとして存在させておけばその設定が読み込まれます。今回はファイルを作成していないのでコンソールから修正しています。詳しくは公式ドキュメントを参照してください。
ディレクトリがdistに設定されていなかったのでそこを修正していきます。
修正したのちに再ビルド。
ビルド完了したら、アクセスして確認。
できた!hello worldではありませんが、初期表示ができたのでめでたしめでたし。
ではまた!