webdino / lyceum-pokemon

ポケモン API を使った Nuxt+Express アプリ/サーバの開発演習
3 stars 28 forks source link

App Runner での動作確認 #104

Closed knokmki612 closed 9 months ago

knokmki612 commented 1 year ago

本アプリを App Runner にデプロイし、デプロイ先の URL からアクセス、正常にできることを確認できたら完了

knokmki612 commented 1 year ago

準備: ロールの作成

https://us-east-1.console.aws.amazon.com/iamv2/home#/roles より「ロールを作成」をクリック

image

カスタム信頼ポリシーを選択し、以下のカスタム信頼ポリシーを作成

参考: 講義資料 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 を指定

image

ロール名を入力して作成

image

App Runner サービスの作成

https://us-east-1.console.aws.amazon.com/apprunner/home#/services からサービスの作成をクリック

image

リポジトリタイプは「ソースコードリポジトリ」を指定、必要に応じてAWS Connector for GitHubアプリをインストールし、webdino/lyceum-pokemonをフォークしたリポジトリを指定

image

下記の通り設定

image

環境変数を設定(NUXT_PUBLIC_BACKEND_ORIGINの指定が必要だが初回は諦める。デプロイ後デフォルトドメインが分かるのでデプロイ成功後追加)

image

準備で作成したIAMロールをインスタンスロールとして指定

image

dynamis commented 1 year ago

環境変数を設定

スクショでは 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
knokmki612 commented 10 months ago

NUXT_PUBLIC_BACKEND_ORIGINの指定が必要だが初回は諦める。デプロイ後デフォルトドメインが分かるのでデプロイ成功後追加

134 の変更により、NUXT_PUBLIC_BACKEND_ORIGINが指定不要になりました。あわせて初回デプロイ成功後判明するオリジンも不要、つまり初回デプロイに成功すれば2回目デプロイの作業は不要になりました。

dynamis commented 9 months ago

最新の環境での構築試験 (事前実施済みのロール設定部分は省略、デフォルト設定から変えている部分のみスクショ):

image image image

環境変数設定がどう考えても必須である NUXT_BUCKET_NAME 以外は完全デフォルトでサクッと動作するようになってとても楽になりました。

knokmki612 commented 9 months ago

https://github.com/webdino/lyceum-pokemon/issues/104#issuecomment-1907159549 のスクリーンショットを #141 にて使用させていただきました :pray:

本issueにあたるタスクは今後必要なタイミングで起票するつもりで、 #141 のマージを持ってクローズしようと思います。