Upstash ↗ は、Redis* と Kafka API を備えたサーバーレスデータベースです。Upstash は、サーバーレス向けに設計されたタスクキュー / スケジューラーの QStash も提供します。
Upstash との連携を設定する手順は次のとおりです。
-
接続先となる既存の Upstash データベースが必要です。Upstash データベースを作成する ↗ か、既存データベースのデータを Upstash に読み込む ↗ ことができます。
-
Upstash データベースにデータを入れます。データの追加方法は次の 2 通りです。
- Upstash コンソールから CLI を直接使います。
- または、ローカルに redis-cli ↗ をインストールし、次のコマンドを実行します。
set GB "Ey up?"OKset US "Yo, what’s up?"OKset NL "Hoi, hoe gaat het?"OK -
Worker に Upstash Redis の認証情報を設定します。
Upstash Redis のデータベース URL とトークンを、Worker のシークレットとして追加する必要があります。Upstash Console ↗ のデータベース詳細から取得し、Wrangler でシークレットとして追加します。
# Add the Upstash Redis URL as a secret npx wrangler secret put UPSTASH_REDIS_REST_URL # When prompted, paste your Upstash Redis REST URL # Add the Upstash Redis token as a secret npx wrangler secret put UPSTASH_REDIS_REST_TOKEN # When prompted, paste your Upstash Redis REST token -
Worker で
@upstash/redisをインストールします。データベースに接続し、データを操作するための HTTP クライアントです。npm i @upstash/redisyarn add @upstash/redispnpm add @upstash/redisbun add @upstash/redis -
次の例は、Worker から Upstash データベースへクエリする流れです。Upstash への接続に必要な認証情報は、シークレットとして Worker に追加済みです。
import { Redis } from "@upstash/redis/cloudflare"; export default { async fetch(request, env) { const redis = Redis.fromEnv(env); const country = request.headers.get("cf-ipcountry"); if (country) { const greeting = await redis.get(country); if (greeting) { return new Response(greeting); } } return new Response("Hello What's up!"); }, };
Upstash の詳細は Upstash のドキュメント ↗ を参照してください。
Upstash QStash との連携を設定する手順は次のとおりです。
-
メッセージの送信先となる 公開 HTTP エンドポイント ↗ を設定します。
-
Worker に Upstash QStash の認証情報を設定します。
Upstash QStash のトークンを Worker のシークレットとして追加する必要があります。Upstash Console ↗ の QStash 設定からトークンを取得し、Wrangler でシークレットとして追加します。
# Add the QStash token as a secret npx wrangler secret put QSTASH_TOKEN # When prompted, paste your QStash token -
Worker で
@upstash/qstashをインストールします。QStash エンドポイントに接続するための HTTP クライアントです。npm i @upstash/qstashyarn add @upstash/qstashpnpm add @upstash/qstashbun add @upstash/qstash -
Cloudflare Worker で QStash からの webhook を受け取る方法は、Upstash のドキュメント ↗ を参照してください。
* Redis は Redis Ltd. の商標です。その権利は Redis Ltd. に帰属します。Upstash による使用は参照目的のみであり、Redis と Upstash の間にスポンサーシップ、推奨、提携があることを示すものではありません。