1. מבוא
סקירה כללית
פונקציות Cloud Run הן דרך חדשה לפרוס עומסי עבודה באמצעות פרדיגמות מוכרות של אירועים ושל חתימות פונקציות של GCF. במקום להשתמש בתהליך build ובהגדרות הפריסה המובנות שלנו, פונקציות Cloud Run מאפשרות לכם שליטה ישירה בשירות הבסיסי שנוצר ב-Cloud Run.
עם פונקציות Cloud Run, אנחנו מספקים את חוויית המשתמש הפשוטה של פריסת קוד מקור ב-Cloud Run, ומאפשרים למפתחים שליטה מלאה בעומסי העבודה שלהם באמצעות הגדרות 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
קודם יוצרים ספרייה לקוד המקור ועוברים לספרייה הזו.
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 ליצור את הפונקציה כשירות מבוסס-קונטיינר שניתן להפעלה
- הדגל –function (חדש) משמש להגדרת נקודת הכניסה של השירות החדש לחתימת הפונקציה שרוצים להפעיל
- (אופציונלי) האפשרות –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 Console בכתובת https://console.cloud.google.com/run ומוחקים את crf-http-codelab השירות.
אם אתם רוצים למחוק את הפרויקט כולו, אתם יכולים להיכנס לכתובת https://console.cloud.google.com/cloud-resource-manager, לבחור את הפרויקט שיצרתם בשלב 2 וללחוץ על 'מחיקה'. אם תמחקו את הפרויקט, תצטרכו לשנות את הפרויקטים ב-Cloud SDK. כדי לראות את רשימת כל הפרויקטים הזמינים, מריצים את הפקודה gcloud projects list.