Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

【GAE/ GCP】ながーーーーいデプロイ ~Nuxt編~

感想

GAEは、デプロイ完了までが長いです。
12分くらい。

GAEの全体像

image.png
App Engine の概要  |  App Engine スタンダード環境での Go 1.12+ に関するドキュメント より引用

サービス

最初は、defaultバージョンが存在します。
アプリを論理コンポーネントに分解できるので、バックエンド、フロントエンドとかの切り方でも運用できますし、一連のマイクロサービスとして実行したりできます。

バージョン

図にもある通り、サービスの中で複数のバージョンがあることで、ロールバック用、テスト用、など様々なバージョンにすばやく切り替えることができます。

ライフサイクル

  • デプロイ
    • gcloud app deploy
  • 古いバージョンから新しいバージョンにトラフィックを移行
    • --no-promote をつけなかったら、勝手に移行される
  • 動作確認

GAEのデプロイ時のトラフィック移行について - Qiita

NuxtをGAEにデプロイ

Nuxtの実装

実装は適当に用意します。

yamlファイル

前提

GAEにNuxtをデプロイするためには、app.yamlファイルをトップディレクトリに配置する必要があります。
app.ymlではなく、app.yamlであることに注意です。
ファイル名間違うと下記のようにエラーが出ます。

ERROR: (gcloud.app.deploy) [/Users/sanotaka/Desktop/test/github-name/app.yaml] does not exist.

使用した app.yaml ファイル

runtime: nodejs
env: flex
instance_class: F2

handlers:
  - url: /_nuxt
    static_dir: .nuxt/dist/client
    secure: always

  - url: /(.*\.(gif|png|jpg|ico|txt))$
    static_files: static/\1
    upload: static/.*\.(gif|png|jpg|ico|txt)$
    secure: always

  - url: /.*
    script: auto
    secure: always

env_variables:
  HOST: '0.0.0.0'
  NODE_ENV: 'production'

Google App Engine へデプロイするには? - NuxtJS

デプロイ

下記コマンドで実行します。
gcloud app deploy app.yaml --project [project-id]

遭遇したエラー

エラー内容

✖ Nuxt Fatal Error                                                               
Error: No build files found in /app/.nuxt/dist/server.
Use either `nuxt build` or `builder.build()` or start nuxt in development mode.
package.json
"start": "nuxt build && nuxt start",

Nuxt.jsの「Error: No build files found in XXX」への対応 | Sysrigar

バージョン管理

Google App Engineのスマートなバージョン管理 - Qiita

GAEに関する gcloud コマンド

デプロイ
gcloud app deploy --project [project名]

既存のアプリケーションをアップデート
gcloud app update --project [project名]

詳細確認
gcloud app describe

サービス一覧
gcloud app services list

バージョン一覧
gcloud app versions list

ログの確認
gcloud app logs read

エンジニアのためのWebチートシート

スプリット ヘルスチェック

gcloud beta app update --split-health-checks --project distance-prd
レガシー ヘルスチェックからスプリット ヘルスチェックへの移行

ブルーグリーンデプロイ

近年のデプロイ手法について|clonos|Google Cloud Platform の導入支援、構築、監視、運用代行
デプロイ / リリース 手法 まとめ - galife

sanoyo
自衛隊からソフトウェアエンジニア
https://note.com/yokosano
engineerlife
技術力をベースに人生を謳歌する人たちのコミュニティです。
https://community.camp-fire.jp/projects/view/280040
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away