- यह उदाहरण Fastly CLI के पुराने संस्करण का उपयोग करता है। अप-टू-डेट संस्करण के लिए इस लेख को देखें।
इस पोस्ट में हम एक साधारण एप्लीकेशन लिखेंगे जो Fastly Compute@Edge पर चलेगी। एप्लिकेशन पृष्ठ दृश्यों का ट्रैक रखने के लिए Upstash Redis को एक्सेस करेगा।
प्रेरणा
एज कंप्यूटिंग हाल के वर्षों में सबसे रोमांचक रुझानों में से एक है। क्लाउडफ्लेयर और फास्टली जैसी सीडीएन सेवाओं ने उपयोगकर्ताओं को अपने अनुप्रयोगों को अपने किनारे के बुनियादी ढांचे पर चलाने में सक्षम बनाने के लिए शुरू किया। यह डेवलपर्स को विश्व स्तर पर वितरित, उच्च प्रदर्शन एप्लिकेशन बनाने में मदद करता है।
Compute@Edge Fastly का सर्वर रहित प्लेटफॉर्म है। आप अपना कोड रस्ट, असेंबलीस्क्रिप्ट, जावास्क्रिप्ट में लिख सकते हैं और फास्टली के एज नेटवर्क में चला सकते हैं। तेजी से गणना कार्य स्टेटलेस हैं। इसका मतलब है कि डेवलपर्स को अपने आवेदन की स्थिति को बाहरी भंडारण में रखना चाहिए। लेकिन तेजी से कार्यों के लिए रनटाइम के रूप में WebAssembly का उपयोग करता है और यह टीसीपी कनेक्शन की अनुमति नहीं देता है। Upstash Redis REST API, वैश्विक प्रतिकृति और सर्वर रहित मूल्य निर्धारण के साथ तेजी से गणना कार्यों के लिए एक आदर्श समाधान है।
कोड और डेमो देखें
प्रोजेक्ट सेटअप
Upstash कंसोल में एक डेटाबेस बनाएं। किनारे के स्थानों से कम विलंबता के लिए वैश्विक डेटाबेस को प्राथमिकता दें।
तेजी से क्ली स्थापित करें:
brew install fastly/tap/fastly
अपने CLI को अपने Fastly खाते से कॉन्फ़िगर करें:
fastly configure
एक फोल्डर बनाएं और fastly compute init
running चलाकर अपने प्रोजेक्ट को इनिट करें फ़ोल्डर के अंदर:
➜ using-fastly-compute git:(master) ✗ fastly compute init
Creating a new Compute@Edge project.
Press ^C at any time to quit.
Name: [using-fastly-compute]
Description:
Author: [[email protected]]
Language:
[1] Rust
[2] AssemblyScript (beta)
[3] JavaScript (beta)
[4] Other ('bring your own' Wasm binary)
Choose option: [1] 3
Starter kit:
[1] Default starter for JavaScript
A basic starter kit that demonstrates routing, simple synthetic responses and
overriding caching rules.
https://github.com/fastly/compute-starter-kit-javascript-default
Choose option or paste git URL: [1]
✓ Initializing...
✓ Fetching package template...
✓ Updating package manifest...
✓ Initializing package...
Initialized package using-fastly-compute to:
/Users/enes/dev/examples/using-fastly-compute
To publish the package (build and deploy), run:
fastly compute publish
To learn about deploying Compute@Edge projects using third-party orchestration tools, visit:
https://developer.fastly.com/learning/integrations/orchestration/
SUCCESS: Initialized package using-fastly-compute
अपस्टैश-रेडिस और फ्लाइट-पथ स्थापित करें:
npm install @upstash/redis flight-path
इन प्लग इन को जोड़कर अपना webpack.config.js अपडेट करें:
plugins: [
// Polyfills go here.
// Used for, e.g., any cross-platform WHATWG,
// or core nodejs modules needed for your application.
new webpack.ProvidePlugin({
URL: "core-js/web/url",
}),
],
अपनी fast.toml फ़ाइल को अपडेट करें:
authors = ["[email protected]"]
description = "Example of using Upstash with Fastly Compute@Edge"
language = "javascript"
manifest_version = 2
name = "fastly-upstash"
service_id = "PASTE_YOUR_SERVICE_ID"
[local_server.backends.upstash-db]
url = "https://eu1-liberal-cat-30162.upstash.io"
आपको एक Fastly Compute Service बनाने और अपनी Fastly Service Id को ऊपर चिपकाने की आवश्यकता है।
साथ ही आपको अपनी Fastly Compute Service में बैकएंड के रूप में Upstash REST URL को भी जोड़ना होगा। Fastly Compute के लिए बैकएंड के रूप में पंजीकृत होने के लिए किसी भी बाहरी नेटवर्क कनेक्शन की आवश्यकता होती है। सेवा स्क्रीन पर, Edit Configuration
पर क्लिक करें> Clone version x to edit
> Origins
> Create a host
होस्ट जोड़ने के बाद, होस्ट के लिए नाम जोड़ने के लिए संपादित करने के लिए आइकन पर क्लिक करें। नाम को upstash-db
के रूप में सेट करें जो backend
. के बराबर होगा विकल्प जब हम upstash-redis क्लाइंट को कॉन्फ़िगर कर रहे हैं। https://
हटाएं यूआरएल से हिस्सा। अंत में Activate
. पर क्लिक करें वर्तमान परिनियोजन के साथ कॉन्फ़िगरेशन को सक्रिय करने के लिए ऊपरी दाएं कोने पर बटन।
Local_server.backends.upstash-db
आपके लिए स्थानीय रूप से अपना कार्य चलाने के लिए आवश्यक है। url को अपने Upstash डेटाबेस के REST url से बदलें।
कार्यान्वयन
src/index.js सर्वर रहित फ़ंक्शन का कार्यान्वयन है। नीचे दिए गए कोड को संपादित करें:
import { Router } from "flight-path";
import { Redis } from "@upstash/redis/fastly";
const router = new Router();
const redis = new Redis({
url: "PASTE_YOUR_UPSTASH_REST_URL",
token: "PASTE_YOUR_UPSTASH_TOKEN",
backend: "upstash-db",
});
router.get("/", async (req, res) => {
const count = await redis.incr("count");
res.send(`Fastly with Upstash! Count: ${count}`);
});
router.listen();
आपको Upstash कंसोल से REST URL और टोकन को कॉपी और पेस्ट करना होगा
हम केवल upstash-redis क्लाइंट का उपयोग करके Upstash से जुड़ते हैं। हम एक काउंटर बढ़ाते हैं और प्रतिक्रिया वापस करते हैं।
ध्यान दें कि आप अन्य Redis क्लाइंट का उपयोग नहीं कर सकते क्योंकि वे TCP कनेक्शन का उपयोग करते हैं जो Fastly Compute द्वारा समर्थित नहीं है।
auth()
with के साथ प्रमाणीकरण करते समय , आपको backend: upstash-db
. जोड़ना होगा एक अतिरिक्त अनुरोध विकल्प के रूप में। यह आवश्यक है क्योंकि फास्ट कंप्यूट के लिए बैकएंड के रूप में पंजीकृत होने के लिए किसी बाहरी नेटवर्क कनेक्शन की आवश्यकता होती है।
स्थानीय रूप से चलाएं
आप इस फ़ंक्शन को स्थानीय रूप से चला सकते हैं:
fastly compute serve
बिल्ड और डिप्लॉय करें
इसके साथ अपना फ़ंक्शन बनाएं और परिनियोजित करें:
fastly compute publish
आपका आवेदन फास्टली द्वारा बनाया और तैनात किया जाएगा। कमांड यूआरएल को लॉग करेगा ताकि आप जांच सकें कि यह काम कर रहा है या नहीं:
https://horribly-organic-spider.edgecompute.app
समापन शब्द
इस लेख में हमने एक बहुत ही सरल एप्लिकेशन बनाया है जो Upstash का उपयोग करके Fastly Compute at Edge पर चलता है। हम आपकी प्रतिक्रिया से Upstash और हमारी सामग्री को बेहतर बनाना पसंद करते हैं। हमें Twitter या Discord पर अपने विचार बताएं।
बाहरी लिंक
https://developer.fastly.com/learning/compute/
https://developer.fastly.com/learning/compute/javascript/