Closed knokmki612 closed 9 months ago
https://us-east-1.console.aws.amazon.com/iamv2/home#/roles より「ロールを作成」をクリック
カスタム信頼ポリシーを選択し、以下のカスタム信頼ポリシーを作成
参考: 講義資料 Day8 p.38 と https://zenn.dev/becominn/articles/3c06bc732f8775
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Principal": {
"Service": "tasks.apprunner.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
許可ポリシーから AmazonS3FullAccess を指定
ロール名を入力して作成
https://us-east-1.console.aws.amazon.com/apprunner/home#/services からサービスの作成をクリック
リポジトリタイプは「ソースコードリポジトリ」を指定、必要に応じてAWS Connector for GitHubアプリをインストールし、webdino/lyceum-pokemonをフォークしたリポジトリを指定
下記の通り設定
環境変数を設定(NUXT_PUBLIC_BACKEND_ORIGINの指定が必要だが初回は諦める。デプロイ後デフォルトドメインが分かるのでデプロイ成功後追加)
準備で作成したIAMロールをインスタンスロールとして指定
環境変数を設定
スクショでは HOST, PORT の指定もしている / README でも指定が必要とあるが、これらは省略しても問題無さそうです。
NUXT_PUBLIC_BACKEND_ORIGINの指定が必要だが初回は諦める。デプロイ後デフォルトドメインが分かるのでデプロイ成功後追加
ここだけ少し面倒だが仕方ない感じですね。そしてそこの指定の末尾 / を入れると Vue Router の制限に引っかかって次のエラーで起動しない / デプロイがロールバックされる 事に要注意
[Vue Router warn]: Location "[object Object]" resolved to "//api/trainers". A resolved location cannot start with multiple slashes.
[Vue Router warn]: Location "//api/trainers" resolved to "//api/trainers". A resolved location cannot start with multiple slashes.
[nuxt] error caught during app initialization H3Error: Page not found: //api/trainers
NUXT_PUBLIC_BACKEND_ORIGINの指定が必要だが初回は諦める。デプロイ後デフォルトドメインが分かるのでデプロイ成功後追加
最新の環境での構築試験 (事前実施済みのロール設定部分は省略、デフォルト設定から変えている部分のみスクショ):
環境変数設定がどう考えても必須である NUXT_BUCKET_NAME 以外は完全デフォルトでサクッと動作するようになってとても楽になりました。
https://github.com/webdino/lyceum-pokemon/issues/104#issuecomment-1907159549 のスクリーンショットを #141 にて使用させていただきました :pray:
本issueにあたるタスクは今後必要なタイミングで起票するつもりで、 #141 のマージを持ってクローズしようと思います。
本アプリを App Runner にデプロイし、デプロイ先の URL からアクセス、正常にできることを確認できたら完了