Cloudflare Workersでサーバレス開発 part3 Workers KVを無料で使う

引き続きCloudflare Workersの話。今月、ありがたいことにCloudflare Workers KVのFree Tierが拡大されたようです。

今までは動作確認程度しか使えませんでしたが、無料枠が拡大されたことによりコンテンツキャッシュとして使えそうかなという感じです。AWSでいうところのLambda + DynamoDBの組み合わせをCloudflareの無料枠でも実現できるようになります。もちろんまだAWSと比べると細かい設定はできないどころか容量も桁違いに少ないですが、用途の限定すれば使い途はあるのではないでしょうか。

Workers KVの無料枠制限の内容だけ抜粋すると以下のようになります。

  • 1日10万回の読み取り操作
  • 1日1万回の書き込み、削除、リスト操作
  • 最大バリューサイズ25MB

Cloudflareのブログ内では書き込みが1日1000回となっていましたが、実際の制限は10000回かと思われます(ダッシュボード上では10000回になっている、要確認)。また、最大バリューサイズ(1つのキーに保存できるデータ容量)が10MBから25MBに引き上げられたことで巨大なアセットでも保存できるようになりました。25MBもあれば十分ですね。

環境構築

過去のエントリーを参考にしていただければ。今回もJavaScriptでWorkerを作っていきます。

* wrangler
wrangler 1.1x系だと絵文字たくさんですね。意味分かりませんが。

Cloudflare Workers KV

まずはwranglerでネームスペースを作ります。

wrangler.tomlへの反映

ネームスペースを作成したら忘れないように wrangler.toml にも記載しておきます。

Workers KVには任意の静的ファイルやJSONデータを入れることができます。ここでは適当なテキストファイルを保存してみます。

ファイルの中身を保存したい場合はpathオプションが必要です。bindingオプションにはネームスペース名を指定します。

JavaScriptからWorkers KVへのアクセス

Workers KVのネームスペースがそのままJavaScriptオブジェクトになっていて、get/put/delete メソッドが提供されています。

ここではデータ登録処理は省略しますが、await test.put("test_key", "test_value") のようにputメソッドを呼ぶだけです。オブジェクトそのものは保存できないので、JSON.stringify()などで文字列にシリアライズしてから保存します。注意点として、ネームスペース名は他の変数とコンフリクトしないように注意して付けないといけませんね。チュートリアルにあるように大文字にした方がわかりやすいかも。

workers.devに反映

開発環境(workers.dev)にデプロイします。前回はGitHub Action経由でデプロイしたんですが今回はコマンドから直接デプロイします。

表示されたURLにブラウザからアクセスして、”hello, cloudflare workers kv” が表示されたらOKです。簡単ですね。

おわりに

今回はCloudflare Workers KVの使い方を紹介しました。機能的にはシンプルなKVSなので目新しさはありませんが、Worker環境に無料枠のストレージ層が新たに拡大されてサーバレス環境で開発する動機付けがより強くなるのではないでしょうか。

あわせて読む:

コメントを残す

メールアドレスが公開されることはありません。