אפשר להתחבר למופע Redis מפונקציות Cloud Run באמצעות תעבורת נתונים יוצאת (egress) ישירה של VPC.
הגדרה
אם כבר התקנתם את Google Cloud CLI ויצרתם מופע Redis, אתם יכולים לדלג על השלבים האלה.
מתקינים את ה-CLI של gcloud ומפעילים אותו:
gcloud initפועלים לפי המדריך למתחילים כדי ליצור מכונת Redis. חשוב לשים לב לאזור, לכתובת ה-IP ולפורט של מכונת Redis.
הכנה של יציאת נתונים מרשת VPC להגדרה
כדי להתחבר למופע Redis, לפונקציית Cloud Run צריכה להיות גישה לרשת ה-VPC המורשית של מופע Redis.
כדי למצוא את השם של הרשת הזו, מריצים את הפקודה הבאה:
gcloud redis instances describe INSTANCE_ID --region REGION --format "value(authorizedNetwork)"
רושמים את שם הרשת.
פונקציית דגימה
הפונקציה לדוגמה הזו יוצרת חיבור למכונת Redis מפונקציות Cloud Run.
משכפלים את המאגר בשפת התכנות הרצויה ועוברים לתיקייה שמכילה את הקוד לדוגמה:
המשך
git clone https://github.com/GoogleCloudPlatform/golang-samples
cd golang-samples/functions/memorystore/redis
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples
cd nodejs-docs-samples/functions/memorystore/redis
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
cd python-docs-samples/functions/memorystore/redis
קוד הדוגמה מגדיל מונה Redis בכל פעם שהפונקציה מופעלת:
המשך
הפונקציה הזו משתמשת בלקוח github.com/gomodule/redigo/redis.
Node.js
הפונקציה הזו משתמשת במודול redis.
Python
הפונקציה הזו משתמשת בחבילה redis-py.
פריסת הדוגמה לפונקציות Cloud Run
כדי לפרוס את הפונקציה:
מעתיקים את
Dockerfileלספריית קובצי המקור:cp ../../../memorystore/redis/cloud_run_deployment/Dockerfile .כדי ליצור קובץ אימג' של קונטיינר באמצעות Cloud Build, מריצים את הפקודה הבאה:
gcloud artifacts repositories create --location REPO_REGION --repository-format=docker REPO_ID gcloud builds submit --pack image=REPO_REGION-docker.pkg.dev/PROJECT_ID/REPO_ID/visit-counter:v1,builder=gcr.io/buildpacks/builder:latest,env=GOOGLE_FUNCTION_SIGNATURE_TYPE=http,env=GOOGLE_FUNCTION_TARGET=VisitCount
כדי לפרוס את הקונטיינר ב-Cloud Run, מריצים את הפקודה הבאה:
gcloud run deploy \ --image REPO_REGION-docker.pkg.dev/PROJECT_ID/REPO_ID/visit-counter:v1 \ --allow-unauthenticated \ --region REGION \ --network NETWORK \ --subnet SUBNET \ --set-env-vars REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
where:
-
REPO_REGIONהוא האזור של המאגר. -
REPO_IDהוא שם המאגר שמכיל את תמונת האפליקציה. -
PROJECT_IDהוא מזהה הפרויקט. Google Cloud -
REGIONהוא האזור שבו נמצאת מכונת ה-Redis. -
NETWORKהוא השם של רשת ה-VPC המורשית שאליה מחובר מופע Redis. -
SUBNETהוא שם תת-הרשת. תת-הרשת צריכה להיות/26או גדולה יותר. יציאה ישירה מ-VPC תומכת ב-RFC 1918, ב-RFC 6598 ובטווחים של Class E IPv4. -
REDIS_IPו-REDIS_PORTהן כתובת ה-IP ומספר היציאה של מופע Redis.
-
אחרי שפריסת הפונקציה מסתיימת, מאחזרים את כתובת ה-URL של הפונקציה:
gcloud run services describe visit-count \ --region=REGION
אפשר לראות את המונה גדל בכל פעם שמפעילים את הפונקציה על ידי שליחת בקשת GET לכתובת ה-URL שלה.