1. מבוא
סקירה כללית
הפונקציות של Cloud Run הן דרך חדשה לפרוס עומסי עבודה (workloads) באמצעות הפרדיגמות המוכרות של אירועים ב-GCF וחתימת הפונקציה. במקום להשתמש בתהליך ה-build המקובעות ובהגדרות הפריסה שלנו, הפונקציות של Cloud Run מעניקות לכם שליטה ישירה על השירות הבסיסי שנוצר ב-Cloud Run.
באמצעות הפונקציות של Cloud Run, אנחנו מספקים חוויית משתמש פשוטה בפריסת המקור ב-Cloud Run, וכך המפתחים מקבלים שליטה מלאה על עומסי העבודה (workloads) שלהם באמצעות הגדרות של Cloud Run.
ה-Codelab הזה משתמש בדוגמאות שלNodejs בדוגמאות הבאות. עם זאת, אפשר להשתמש בדוגמאות הקוד של Cloud Functions דור שני בשפה הרצויה:
- דוגמאות של פונקציות Python
- דוגמאות של פונקציות של Nodejs
- דוגמאות של פונקציות Go
- דוגמאות של פונקציות Java
- דוגמאות של פונקציות PHP
- דוגמאות של פונקציות Ruby
- דוגמאות של פונקציות.NET
מה תלמדו
- איך פורסים פונקציה של Cloud Run שמופעלת על ידי בקשת HTTP
2. הגדרת משתני סביבה והפעלת ממשקי API
שדרוג ה-CLI של gcloud
קודם כול, צריכה להיות מותקנת גרסה עדכנית של ה-CLI של gcloud. אפשר לעדכן את ה-CLI על ידי הרצת הפקודה הבאה:
gcloud components update
הגדרה של משתני סביבה
אתם יכולים להגדיר משתני סביבה שישמשו ב-Codelab הזה.
PROJECT_ID=<YOUR_PROJECT_ID> REGION=<YOUR_REGION, e.g. us-central1> gcloud config set project $PROJECT_ID SERVICE_NAME=crf-http-codelab
הפעלת ממשקי API
לפני שתוכלו להתחיל להשתמש ב-Codelab הזה, יש כמה ממשקי API שתצטרכו להפעיל. ה-Codelab הזה מחייב שימוש בממשקי ה-API הבאים. כדי להפעיל את ממשקי ה-API האלה, מריצים את הפקודה הבאה:
gcloud services enable run.googleapis.com \ cloudbuild.googleapis.com \ storage.googleapis.com \ artifactregistry.googleapis.com
3. יצירת פונקציית HTTP
קודם כל, יוצרים ספרייה עבור קוד המקור וה-cd בספרייה הזו.
mkdir -p cloud-run-functions/$SERVICE_NAME && cd $_
לאחר מכן, יוצרים קובץ package.json
עם התוכן הבא:
{ "dependencies": { "@google-cloud/functions-framework": "^3.0.0" } }
לאחר מכן, יוצרים קובץ index.js
עם התוכן הבא:
const functions = require("@google-cloud/functions-framework"); functions.http("helloHttp", (req, res) => { res.send(`Hello ${req.query.name || req.body.name || "World"}!`); });
4. פריסת הפונקציה
עכשיו אפשר לפרוס את הפונקציה של Cloud Run באמצעות הפקודה הבאה:
gcloud beta run deploy $SERVICE_NAME \ --source . \ --function helloHttp \ --region us-central1 \ --no-allow-unauthenticated
הפקודה הזו משתמשת ב-buildpacks כדי להפוך את קוד המקור של הפונקציה לקובץ אימג' בקונטיינר שמוכן לייצור.
שימו לב:
- הדגל -source משמש כדי לומר ל-Cloud Run ליצור את הפונקציה בשירות מבוסס קונטיינר שניתן להריץ
- דגל הפונקציה (חדש) משמש להגדרת נקודת הכניסה של השירות החדש כחתימת הפונקציה הרצויה.
- (אופציונלי) -no-allow-unauthenticated כדי למנוע את הפעלת הפונקציה באופן ציבורי
5. בדיקת הפונקציה
בסיום הפריסה, תופיע כתובת ה-URL של השירות. כדי להפעיל את הפונקציה, צריך לשלוח בקשה מאומתת עם אסימון הזהות שלכם או עם אסימון הזהות של עיקרון שיש לו את התפקיד Cloud Run Invoker, כמו בדוגמה הבאה:
# get the Service URL SERVICE_URL="$(gcloud run services describe $SERVICE_NAME --region us-central1 --format 'value(status.url)')" # invoke the service curl -H "Authorization: bearer $(gcloud auth print-identity-token)" -X GET $SERVICE_URL
6. מעולה!
מזל טוב, השלמת את Codelab!
מומלץ לעיין במסמכים בנושא פונקציות של Cloud Run
אילו נושאים דיברנו?
- איך פורסים פונקציה של Cloud Run שמופעלת על ידי בקשת HTTP
7. הסרת המשאבים
כדי להימנע מחיובים לא מכוונים (לדוגמה, אם שירותי Cloud Run מופעלים בטעות יותר פעמים מהקצאת ההפעלה החודשית של Cloud Run בתוכנית ללא תשלום), אפשר למחוק את Cloud Run או למחוק את הפרויקט שיצרתם בשלב 2.
כדי למחוק את הפונקציה של Cloud Run, צריך להיכנס למסוף Cloud Run Cloud בכתובת https://console.cloud.google.com/run ולמחוק את השירות crf-http-codelab
.
אם בוחרים למחוק את הפרויקט כולו, נכנסים לכתובת https://console.cloud.google.com/cloud-resource-manager, בוחרים את הפרויקט שיצרתם בשלב 2 ובוחרים באפשרות 'מחיקה'. אם תמחקו את הפרויקט, יהיה צריך לבצע שינויים בפרויקטים ב-Cloud SDK. כדי להציג את הרשימה של כל הפרויקטים הזמינים, אפשר להריץ את הפקודה gcloud projects list
.