เมื่อเร็วๆ นี้ Netlify ประกาศ Edge Functions ซึ่งคุณสามารถเรียกใช้โค้ดของคุณที่ตำแหน่ง Edge บนรันไทม์ Deno ด้วยความหน่วงต่ำทั่วโลก ในโพสต์นี้ เราจะสร้างแอปอย่างง่ายที่เรียกใช้ฟังก์ชัน Netlify Edge และเข้าถึง Upstash Redis เป็นที่เก็บข้อมูล Upstash Redis เป็นคู่ที่สมบูรณ์แบบสำหรับฟังก์ชัน Netlify Edge เนื่องจาก:
- Upstash Redis มีประเภทฐานข้อมูลทั่วโลกซึ่งมีการแจกจ่ายแบบจำลอง Redis ไปทั่วโลก ดังนั้นฟังก์ชัน Edge ของคุณจะเข้าถึงพื้นที่ที่ใกล้ที่สุดโดยมีเวลาแฝงต่ำ
- Upstash Redis มี REST API และ SDK ในตัวซึ่งปราศจากปัญหาการเชื่อมต่อใดๆ ที่พบได้ทั่วไปในรันไทม์แบบไร้เซิร์ฟเวอร์
- Upstash Redis มี JS SDK ซึ่งสร้างและทดสอบด้วยรันไทม์ของ Deno
การตั้งค่าโครงการ
คุณสามารถชำระเงินโฟลเดอร์นี้ได้หากต้องการข้ามขั้นตอนด้านล่าง
สร้างโปรเจ็กต์โหนดว่าง (npm init
) และสร้าง hello.js
ภายใต้ netlify>edge-functions
ดังต่อไปนี้:
import { Redis } from "https://deno.land/x/[email protected]/mod.ts";
export default async () => {
const redis = Redis.fromEnv();
const counter = await redis.incr("edge_counter");
return new Response(counter);
};
สร้างไฟล์ netlify.toml ในโฟลเดอร์โครงการของคุณ
netlify.toml[[edge_functions]]
path = "/test"
function = "hello"
สร้าง .env
ไฟล์ในโฟลเดอร์โครงการของคุณ
UPSTASH_REDIS_REST_URL=
UPSTASH_REDIS_REST_TOKEN=
ตอนนี้ สร้างฐานข้อมูล Redis จาก Upstash Console เลือกฐานข้อมูลส่วนกลางเพื่อลดเวลาแฝงจากฟังก์ชันขอบของคุณ คัดลอก REST_URL และ REST_TOKEN จากแดชบอร์ด Upstash และวางลงใน .env
.
ทดสอบและปรับใช้
คุณสามารถเรียกใช้แอปพลิเคชันในเครื่องผ่าน:netlify dev
แล้วตรวจสอบ https://localhost:8888/test
นอกจากนี้ คุณสามารถปรับใช้แอปของคุณโดยใช้แดชบอร์ด Netlify คุณต้องตั้งค่า Upstash URL และ Token เป็นตัวแปรสภาพแวดล้อมใน Netlify
ปิดคำ
ในบทความนี้ เราได้แสดงวิธีใช้ Upstash Redis ใน Netlify EdgeFunctions
อย่าลังเลที่จะติดต่อเรา GitHub, Discordand Twitter สำหรับปัญหาหรือความคิดเห็นใด ๆ