תחילת השימוש בפונקציות של Cloud Run (HTTP)

1. מבוא

סקירה כללית

פונקציות Cloud Run הן דרך חדשה לפרוס עומסי עבודה באמצעות פרדיגמות מוכרות של אירועים ושל חתימות פונקציות של GCF. במקום להשתמש בתהליך build ובהגדרות הפריסה המובנות שלנו, פונקציות Cloud Run מאפשרות לכם שליטה ישירה בשירות הבסיסי שנוצר ב-Cloud Run.

עם פונקציות Cloud Run, אנחנו מספקים את חוויית המשתמש הפשוטה של פריסת קוד מקור ב-Cloud Run, ומאפשרים למפתחים שליטה מלאה בעומסי העבודה שלהם באמצעות הגדרות Cloud Run.

ב-Codelab הזה נעשה שימוש בדוגמאות של nodejs בדוגמאות שבהמשך. עם זאת, אתם יכולים להשתמש בדוגמאות הקוד של Cloud Functions דור שני בשפה שתבחרו:

מה תלמדו

  • איך פורסים פונקציית 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.