利用していた Google Visualization APIは、Google SheetsのデータをCSVやJSONで手軽に取得できる便利な仕組みだが、もともとGoogle Charts用に作られたものでSheets専用の正規APIではないためレート制限や突然のエラーがあり不安定だった。
ユーザー側のメリットはアプリの起動やデータ読み込みが安定して速くなる点だ。
これまではGoogle Sheetsのレート制限やエラーがそのままアプリの不具合として現れることがあったが、R2からの直接配信に切り替えることでその影響を受けなくなる。
R2のメリットは下り転送が無制限無料な点でもある。アクセスが増えてもコストが増加しないため、ユーザー数が増えても安定したサービスを維持できる。
構成はシンプルで、バケット直下にMaster.csvを置き、各アプリのフォルダーに設定に必要なcsvデータを配置する。
Master.csvにはシートIDとフォルダー名の対応表が入っており、アプリ起動時にシートIDでマスターを引いてフォルダー名を取得、以降のCSVをR2から読み込む。
Master.csvにはシートIDとフォルダー名の対応表が入っており、アプリ起動時にシートIDでマスターを引いてフォルダー名を取得、以降のCSVをR2から読み込む。
シートIDはES3のキーとして使っており、過去問追加時にシートIDが変わることでユーザーデータを自動的に無効化する仕組みもそのまま維持できた。
CSVの作成・編集は引き続きGoogle Sheetsで行い、更新時にR2へアップロードする運用になる。この手間が唯一のデメリットだが、GASで自動化している。
CSVの作成・編集は引き続きGoogle Sheetsで行い、更新時にR2へアップロードする運用になる。この手間が唯一のデメリットだが、GASで自動化している。
これによりアプリのデータはすべてR2にアップロード・利用が可能となった。
今回の手順
①Google Sheetsを使って元データ作成
②Google Sheetsをcsv化・R2にアップロード(GASで自動化)