আপনার Firebase App Hosting ব্যাকএন্ড একটি ভার্চুয়াল প্রাইভেট ক্লাউড (VPC) নেটওয়ার্কের সাথে সংযোগ করতে পারে। এটি আপনার Firebase App Hosting ব্যাকএন্ডকে ক্লাউড এসকিউএল, স্প্যানার, ক্লাউড মেমোরিস্টোর, Compute Engine বা কুবারনেটস অভ্যন্তরীণ মাইক্রোসার্ভিসেসের মতো সর্বজনীন আইপি ঠিকানাগুলি ব্যবহার করে অ্যাক্সেসযোগ্য নয় এমন ব্যাকএন্ড পরিষেবাগুলি অ্যাক্সেস করতে দেয়৷
ভিপিসি অ্যাক্সেস শুধুমাত্র রানটাইমে (আপনার Cloud Run কন্টেইনার থেকে) পাওয়া যায়, বিল্ড টাইমে নয় ( Cloud Build )।
apphosting.yaml
এ কনফিগার করুন
অ্যাক্সেস কনফিগার করতে আপনার apphosting.yaml
ফাইলে vpcAccess
ম্যাপিং ব্যবহার করুন। হয় একটি সম্পূর্ণ যোগ্য নেটওয়ার্ক নাম বা একটি আইডি ব্যবহার করুন৷ আইডি ব্যবহার করা বিভিন্ন সংযোগকারী/নেটওয়ার্ক সহ স্টেজিং এবং উত্পাদন পরিবেশের মধ্যে বহনযোগ্যতার জন্য অনুমতি দেয়।
runConfig:
vpcAccess:
egress: PRIVATE_RANGES_ONLY # Default value
networkInterfaces:
# Specify at least one of network and/or subnetwork
- network: my-network-id
subnetwork: my-subnetwork-id
উদাহরণ: একটি Next.js অ্যাপ থেকে Redis-এর জন্য Memorystore-এর সাথে সংযোগ করুন
রেডিস বা মেমক্যাশেডের মতো ক্যাশিং সিস্টেমগুলি সাধারণত একটি অ্যাপের জন্য একটি দ্রুত ডেটা ক্যাশিং স্তর তৈরি করতে ব্যবহৃত হয়। এই উদাহরণটি আপনাকে দেখায় কিভাবে আপনার Firebase App Hosting ব্যাকএন্ডের মতো একই Google Cloud প্রজেক্টে Redis-এর জন্য মেমোরিস্টোর সেট আপ করতে হয় এবং সরাসরি VPC এগ্রেস ব্যবহার করে এটির সাথে সংযোগ করতে হয়।
ধাপ 0: রেডিস উদাহরণের জন্য একটি মেমোরিস্টোর তৈরি করুন
- Google Cloud কনসোলে রেডিস পৃষ্ঠার জন্য মেমোরিস্টোরে যান।
- নিশ্চিত করুন যে আপনি Firebase App Hosting জন্য ব্যবহার করছেন সেই একই প্রকল্পটি নির্বাচন করা হয়েছে।
- আপনি যদি এই পৃষ্ঠাটি অ্যাক্সেস করতে না পারেন তবে নিশ্চিত করুন যে আপনার প্রকল্পের জন্য বিলিং সক্ষম করা হয়েছে এবং আপনি মেমোরিস্টোর API সক্ষম করেছেন৷
- ইনস্ট্যান্স তৈরি করুন নির্বাচন করুন।
- আপনার পছন্দের সেটিংস দিয়ে নতুন উদাহরণ কনফিগার করুন। এখানে কিছু উদাহরণ মান আপনি ব্যবহার করতে পারেন:
- ইনস্ট্যান্স আইডির অধীনে
my-redis-cache
লিখুন। - ডিসপ্লে নামের অধীনে
Redis cache
লিখুন। - স্তর নির্বাচক অধীনে মৌলিক চয়ন করুন. মৌলিক স্তর একটি স্বতন্ত্র রেডিস নোডকে মনোনীত করে, স্ট্যান্ডার্ড স্তরের বিপরীতে, যা আপনার ডেটা ব্যাকআপ করার জন্য একটি প্রতিরূপ নোড ব্যবহার করে।
- অঞ্চল নির্বাচক থেকে আপনার App Hosting ব্যাকএন্ডের অঞ্চল চয়ন করুন৷ আপনার ব্যাকএন্ডের অঞ্চলের সাথে মেলে এই মানটি সেট করতে ভুলবেন না।
- জোন নির্বাচক থেকে যেকোনো একটি বেছে নিন।
- ক্যাপাসিটির অধীনে
5
লিখুন। এটি আপনার ইনস্ট্যান্স ক্ষমতা 5 জিবি সেট করে। - সংস্করণের অধীনে
5.0
নির্বাচন করুন (প্রস্তাবিত)। - অনুমোদিত নেটওয়ার্ক নির্বাচক থেকে ডিফল্ট নির্বাচন করুন।
- ইনস্ট্যান্স আইডির অধীনে
ধাপ 1: আপনার VPC নেটওয়ার্ক আইডি দিয়ে apphosting.yaml
আপডেট করুন
- Google Cloud কনসোলে VPC নেটওয়ার্ক পৃষ্ঠাতে যান।
- Redis উদাহরণের জন্য আপনার মেমোরিস্টোরের জন্য VPC নেটওয়ার্ক আইডি খুঁজুন (এটি প্রায়ই
default
হবে)। VPC নেটওয়ার্ক আইডি ব্যবহার করে
apphosting.yaml
এ সরাসরি VPC এগ্রেস কনফিগারেশন সেট করুন:runConfig: vpcAccess: egress: PRIVATE_RANGES_ONLY # Default value networkInterfaces: - network: my-network-id
ধাপ 2: এনভায়রনমেন্ট ভেরিয়েবল যোগ করুন যা আপনার অ্যাপকে রেডিসে নির্দেশ করে
- Google Cloud কনসোলে Redis উদাহরণের জন্য আপনার মেমোরিস্টোরের "সংযোগ" ট্যাবে সংযোগ তথ্য (হোস্ট এবং পোর্ট) খুঁজুন।
REDISPORT
এবংREDISHOST
এনভায়রনমেন্ট ভেরিয়েবল সহ Redis-এর সাথে সংযোগ করুন। Google Cloud কনসোল থেকে হোস্ট এবং পোর্ট মান ব্যবহার করেapphosting.yaml
এ এগুলি সেট করুন:env: # Sample only. Use actual values provided by Memorystore - variable: REDISPORT value: 6379 - variable: REDISHOST value: 10.127.16.3
ধাপ 3: আপনার অ্যাপ থেকে redis ব্যবহার করুন
redis npm প্যাকেজ ইনস্টল করুন:
npm install redis@latest
আপনার কোড থেকে আপনার রেডিস ক্যাশে অ্যাক্সেস করুন। পূর্ববর্তী ধাপে কনফিগার করা পরিবেশ ভেরিয়েবল ব্যবহার করুন। উদাহরণস্বরূপ, একটি Next.js রুট হ্যান্ডলারের ক্যাশে থেকে আপনি কীভাবে পড়তে পারেন তা এখানে:
src/lib/redis.js
import { createClient } from "redis"; // Set these environment variables in apphosting.yaml const REDISHOST = process.env.REDISHOST; const REDISPORT = process.env.REDISPORT; let redisClient; export async function getClient(req, res) { // Only connect if a connection isn't already available if (!redisClient) { redisClient = await createClient(REDISPORT, REDISHOST) .on("error", (err) => console.error("Redis Client Error", err)) .connect(); } return redisClient; }
src/app/counter/route.js
import { getClient } from "@/lib/redis.js"; export async function GET(request) { const redisClient = await getClient(); const count = await redisClient.get("counter"); return Response.json({ count }); } export async function POST(request) { const redisClient = await getClient(); const count = await redisClient.incr("counter"); return Response.json({ count }); }
ধাপ 4 (ঐচ্ছিক): স্থানীয় উন্নয়নের জন্য আপনার অ্যাপ কনফিগার করুন
Firebase App Hosting এমুলেটর apphosting.emulator.yaml
ব্যবহার করে মান ওভাররাইড করতে পারে। এখানে, আপনি স্থানীয় হোস্টের দিকে নির্দেশ করতে REDISHOST
এর মান পরিবর্তন করতে পারেন যাতে আপনি Redis-এর স্থানীয় ইনস্টলেশন ব্যবহার করে স্থানীয়ভাবে বিকাশ করতে পারেন।
- আপনার স্থানীয় মেশিনে Redis ইনস্টল করুন
আপনার স্থানীয় উদাহরণের জন্য
apphosting.emulators.yaml
তৈরি বা সম্পাদনা করুন:env: - variable: REDISHOST value: 127.0.0.1