Apollo ServerとNowで作るGraphQLモックサーバ #3 デプロイ編
前回の続き
ZEIT Nowにデプロイする
Deploying Node.js Apps - ZEIT Documentation
詳しい方法は公式ドキュメントに譲るとして...
一般的なnode appは特に設定をしなくてもプロジェクトディレクトリで now
コマンドを実行すればデプロイされ、利用可能な状態になる。
npm scriptsの "start" がエントリーポイントになるので、以下のように設定しておく。
"scripts": { "start": "ts-node src/index.ts" },
now.json
また、設定なしでデプロイした場合URLにプロジェクトディレクトリ名が勝手に入ってしまうため、 now.jsonの "name" で明示的にプロジェクト名を設定しておくとよい。
{ "name": "graphql-server", "env": { "NODE_ENV": "production" } }
これにより https://graphql-server-foobarbaz.now.sh
といったURLにデプロイされるようになる。
GitHubへのpushにフックしてデプロイさせる
手順は以下の通り ZEIT – Now + GitHub
Pull Requestをopenしてブランチをpushするとnow.jsonの設定にしたがってデプロイが始まる。
デプロイが完了すると下記のようなメッセージが表示され、 commit messageの横にある✓のアイコンからデプロイされた環境にアクセスできるようになる。
URLを固定する
通常 now
でデプロイするとURLが毎回変わってしまう。
デプロイする度にAPIのURLが変わってしまうのは困るので、URLを固定するためにaliasを使う。
Aliases and Domains - ZEIT Documentation
{ "name": "graphql-server", "alias": "graphql-server-foobar.now.sh", "env": { "NODE_ENV": "production" } }
now.jsonに "alias" として、[任意の文字列].now.sh
を追加し、
now alias
を実行すると、現在のdeploymentが指定したaliasでアクセスできるようになる。
モニタリング編に続く