Deno KV を Deno Deploy で使う

| 3 min read
Author: masahiro-kondo masahiro-kondoの画像

先日の記事「Deno のビルトイン key-value データベース Deno KV が登場」ではローカルで試しただけでした。

クローズドベータが使えるようになったら Deno Deploy で試してみたいと思います。

と書いた通り Deno KV クローズドベータの waiting list に登録していました。1週間ぐらいでインビテーションがきて筆者の Deno Deploy アカウントで利用できるようになりました。

Deno Deploy にデプロイ

#

ということで、早速先日の記事で作成したプロジェクトを使ってデプロイしていきます。

Deno Depoly のコンソールでプロジェクトを作成します。

New Project

Deploy from GitHub repository を選んで、リンク対象の GitHub リポジトリを選択します。

Select GitHub repo

Git Integration は Automatic でよいです。コードが書かれたファイル(ここでは mod.ts) を選択します。

deploy from github repo

Information

Deno Deploy での Deploy 方法については以下の記事に書いています。Git Integration の種類についても触れています。

Deno を始める - 第6回 (Deno Deploy で静的ファイルを配信)

リポジトリをリンクしてしばらくするとデプロイが完了し、サイトのドメインが確定しました。

Deployed

動作確認

#

デプロイされたエンドポイントの API を叩きました。前回記事では key-value の value だけ返していましたが、key を含めて返すようにしています。

$ curl https://kondoumh-deno-serve-kv.deno.dev/books/978-1-09-123456-2 | jq .
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 143 100 143 0 0 530 0 --:--:-- --:--:-- --:--:-- 539
{
"key": [
"books",
"978-1-09-123456-2"
],
"value": {
"title": "The Great Gatsby",
"author": "F. Scott Fitzgerald"
},
"versionstamp": "00000619c4832d3e0000"
}

$ curl https://kondoumh-deno-serve-kv.deno.dev/books | jq .
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 549 100 549 0 0 558 0 --:--:-- --:--:-- --:--:-- 561
[
{
"key": [
"books",
"978-1-09-123456-2"
],
"value": {
"title": "The Great Gatsby",
"author": "F. Scott Fitzgerald"
},
"versionstamp": "00000619c4832d3e0000"
},
{
"key": [
"books",
"978-1-09-123456-3"
],
"value": {
"title": "The Grapes of Wrath",
"author": "John Steinbeck"
},
"versionstamp": "00000619c4859a8f0000"
},
{
"key": [
"books",
"978-1-09-123456-4"
],
"value": {
"title": "Nineteen Eighty-Four",
"author": "George Orwell"
},
"versionstamp": "00000619c48803060000"
}
]

登録も動きました。

$ curl -X POST -H "Content-Type: application/json" https://kondoumh-deno-serve-kv.deno.dev/books -d '{"isbn":"978-1-09-123456-5","title":"deno book", "author":"mh"}'
00000618a8ceaea50000

ローカルでの開発時もそうでしたが、データベース設定は一切なしで使えているので完全マネージドな環境ですね。

KV の管理画面

#

サイトの管理画面にも KV が Beta として追加されました。

KV を使っているプロジェクトでは、データ内容とキーによる検索が可能でした。
kv beta

KV を使っていないプロジェクトでは当然何も出ていません。

no kv

Information

クローズドベータですが、守秘義務に関する条項は見当たらなかったのでスクリーンショットを掲載しています。

最後に

#

以上、Deno Deploy で Deno KV を使用するコードをデプロイして動作確認してみました。Geo レプリケーションされた完全マネージドな KVS を使ったアプリを TypeScript ファイル1個でデプロイできる手軽さは魅力的ですね。

豆蔵デベロッパーサイト - 先週のアクセスランキング
  1. 基本から理解するJWTとJWT認証の仕組み (2022-12-08)
  2. AWS認定資格を12個すべて取得したので勉強したことなどをまとめます (2022-12-12)
  3. Nuxt3入門(第4回) - Nuxtのルーティングを理解する (2022-10-09)
  4. Nuxt3入門(第1回) - Nuxtがサポートするレンダリングモードを理解する (2022-09-25)
  5. Nuxt3入門(第8回) - Nuxt3のuseStateでコンポーネント間で状態を共有する (2022-10-28)
  6. Jest再入門 - 関数・モジュールモック編 (2022-07-03)
  7. 自然言語処理初心者が「GPT2-japanese」で遊んでみた (2022-07-08)
  8. IoT を使ってみる(その6:MQTTブローカー Mosquitto編) (2022-10-08)
  9. Nuxt3入門(第3回) - ユニバーサルフェッチでデータを取得する (2022-10-06)
  10. 統計学で避けて通れない自由度の話 (2022-06-20)