FastifyというオーバーヘッドがExpressに比べて小さいと言われているサーバーをロリポップ!マネージドクラウドで動かしたときのメモ。
www.fastify.io
Fastifyのサンプルで書かれているものを以下のところだけ書き換えた。
待機ポートの指定
- 手元で立ち上げたときは5000番使って環境変数
PORT
があったらこれを利用する様にした - ロリポップ!マネージドクラウドの場合はコントロールパネルに「環境変数の設定と管理」という項目があるので、そこから変数を設定する*1
ホスト名の指定
サーバーをlistenさせるときの記述の第2引数で渡すbind先がデフォルトでは 127.0.0.1
になっているので、これを 0.0.0.0
で明示した。
fastify.listen(PORT, '0.0.0.0', function (err, address) {
上記2点を踏まえて以下の様に書いてデプロイすることで動かすことができた。最初、後者の指定に気づかず数度デプロイして躓いていたので、もしかしたら誰かの役に立つかもしれないのでメモとして残しておく。*2
const fastify = require('fastify')({ logger: true }) const PORT = process.env.PORT || 5000 // Declare a route fastify.get('/ping', function (request, reply) { reply.send({"ping":"pong"}); }); // Run the server! fastify.listen(PORT, '0.0.0.0', function (err, address) { if (err) { fastify.log.error(err) process.exit(1) } fastify.log.info(`server listening on ${address}`) })
*1:ちなみにherokuだと環境変数PORTは自動的に割り当てられ、また立ち上げ毎にポート番号は変わる。
*2:もっとも、githubのリポジトリのREADMEに「If you are running Fastify in a container (Docker, GCP, etc.), you may need to bind to 0.0.0.0.」とキチンと書いてあるのである