เมื่อเร็วๆ นี้ Netlify ประกาศ Edge Functions ที่รัน Code ที่ Edge Locations บน Deno Runtime ด้วย Global Low Latency ในโพสต์นี้ เราจะสร้าง Simple App ที่รัน Netlify Edge Functions และเข้าถึง Upstash Redis เป็น Data Store Upstash Redis เหมาะกับ Netlify Edge Functions เพราะ:
- Upstash Redis มี Global Database Type ที่ Replicas กระจายทั่วโลก Edge Function จะเข้าถึง Region ใกล้ที่สุด Low Latency
- Upstash Redis มี Built-in REST API และ SDK ที่ไม่มี Connection Issues ปกติใน Serverless Runtimes
- Upstash Redis มี JS SDK ที่สร้างและทดสอบกับ Deno Runtime
Project Setup
คุณสามารถดู โฟลเดอร์นี้ หากต้องการข้ามขั้นตอนด้านล่าง

สร้าง Empty Node Project (npm init) และสร้าง hello.js ภายใต้ netlify>edge-functions ดังนี้:
// hello.js
import { Redis } from "https://deno.land/x/upstash_redis@v1.3.2/mod.ts";
export default async () => {
const redis = Redis.fromEnv();
const counter = await redis.incr("edge_counter");
return new Response(counter);
};
สร้าง netlify.toml ในโฟลเดอร์โปรเจกต์
[[edge_functions]]
path = "/test"
function = "hello"
สร้างไฟล์ .env ในโฟลเดอร์โปรเจกต์
UPSTASH_REDIS_REST_URL=
UPSTASH_REDIS_REST_TOKEN=
ตอนนี้ สร้าง Redis Database จาก Upstash Console เลือก Global Database เพื่อลด Latency จาก Edge Functions คัดลอก REST_URL และ REST_TOKEN จาก Dashboard วางใน .env

Test และ Deploy
รัน Local ผ่าน: netlify dev เช็ค https://localhost:8888/test
Deploy ผ่าน Netlify Dashboard ตั้ง Upstash URL และ Token เป็น Environment Variable ใน Netlify

ข้อสรุป
ในบทความนี้ เราแสดงวิธีใช้ Upstash Redis ใน Netlify Edge Functions
ติดต่อเราได้ที่ GitHub, Discord และ Twitter สำหรับ Issues หรือ Comments