npx create-sst@latest --template standard/nextjs cd my-sst-app npm install
@upstash/redis
npm install @upstash/redis
UPSTASH_REDIS_REST_URL
UPSTASH_REDIS_REST_TOKEN
.env
npx sst secrets set UPSTASH_REDIS_REST_URL <YOUR_URL> npx sst secrets set UPSTASH_REDIS_REST_TOKEN <YOUR_TOKEN>
import { Config, StackContext, NextjsSite } from "sst/constructs"; export function Default({ stack }: StackContext) { const UPSTASH_REDIS_REST_URL = new Config.Secret(stack, "UPSTASH_REDIS_REST_URL"); const UPSTASH_REDIS_REST_TOKEN = new Config.Secret(stack, "UPSTASH_REDIS_REST_TOKEN"); const site = new NextjsSite(stack, "site", { bind: [UPSTASH_REDIS_REST_URL, UPSTASH_REDIS_REST_TOKEN], path: "packages/web", }); stack.addOutputs({ SiteUrl: site.url, }); }
import { Redis } from "@upstash/redis"; import type { NextApiRequest, NextApiResponse } from "next"; import { Config } from "sst/node/config"; const redis = new Redis({ url: Config.UPSTASH_REDIS_REST_URL, token: Config.UPSTASH_REDIS_REST_TOKEN, }); export default async function handler( req: NextApiRequest, res: NextApiResponse, ) { const count = await redis.incr("counter"); res.status(200).json({ count }); }
npm run dev
cd packages/web npm run dev
http://localhost:3000/api/hello
npx sst secrets set --stage prod UPSTASH_REDIS_REST_URL <YOUR_URL> npx sst secrets set --stage prod UPSTASH_REDIS_REST_TOKEN <YOUR_TOKEN>
npx sst deploy --stage prod
<SiteUrl>/api/hello
Was this page helpful?