node.jsを利用したクローラー作成(54)

色々作業が終了したので、こっちの個人開発を再開するぞ!😤

GAEのホスティングでindex.htmlにCDN効かせる

画像1

一番アクセスされるだろう、index.htmlを静的ファイルとして提供して、GAEのCPU時間が使われることを減らす。index.html内で表示情報が変化する部分は、jsonファイルを動的に読み出して対応。バックグラウンドサービスではcronで定期的にjsonファイルを作成する。

GAEで静的ファイルを提供するには、app.yamlファイルへの指定が必要。
静的ファイル設定で/(ルート)の指定方法が分からなかったが、きちんと調べたら公式に情報があった。(phpの内容だけど、記法は同じ)

handlers:
- url: /
 static_files: www/index.html
 upload: www/index.html

firebase functionで定期処理で吐き出すjsonファイルは、cloud storageに出力する。GAEでホスティングしてる側から読み出す場合はクロスサイトアクセスとなる。そのため、cloud storage側にCORS設定が必要。
(javascriptのfetchは特に設定不要)

公式通りに設定してもなんか上手くいかずハマってしまった。以下のサイト参考に、再度設定。今度はうまくいった。(恐らくmaxAgeSecondsパラメータのせい?新しく設定しなおした場合の設定反映がかなり遅い?)

未ログイン時のサービス部分は上記構成で全部置き換えた。
これでnodeのCPU時間がかなり節約されたはず。

終わり。

この記事が気に入ったらサポートをしてみませんか?