1. סקירה כללית
Cloud Run היא פלטפורמה מנוהלת ללא שרת (serverless) שמאפשרת להריץ קונטיינרים ללא שמירת מצב שאפשר להפעיל באמצעות בקשות HTTP. Cloud Run הוא שירות בלי שרת (serverless): הוא מסתיר את כל ניהול התשתית, כך שאתם יכולים להתמקד במה שהכי חשוב – פיתוח אפליקציות מצוינות.
הוא מבוסס על Knative, ומאפשר לכם לבחור אם להריץ את הקונטיינרים שלכם באופן מנוהל לחלוטין באמצעות Cloud Run, או באשכול Google Kubernetes Engine באמצעות Cloud Run on GKE.
מה תלמדו
בשיעור Lab זה תלמדו איך:
- פריסת אפליקציה של Cloud Run
דרישות מוקדמות
- ההנחה בשיעור ה-Lab הזה היא שאתם מכירים את הסביבות של Cloud Console ו-Cloud Shell.
2. הגדרה ודרישות
הגדרה של פרויקט ב-Cloud
- נכנסים ל-מסוף Google Cloud ויוצרים פרויקט חדש או משתמשים בפרויקט קיים. אם עדיין אין לכם חשבון Gmail או Google Workspace, אתם צריכים ליצור חשבון.



- שם הפרויקט הוא השם המוצג למשתתפים בפרויקט. זו מחרוזת תווים שלא נמצאת בשימוש ב-Google APIs. אפשר לעדכן את המיקום הזה בכל שלב.
- מזהה הפרויקט הוא ייחודי לכל הפרויקטים ב-Google Cloud ואי אפשר לשנות אותו אחרי שהוא מוגדר. מסוף Cloud יוצר באופן אוטומטי מחרוזת ייחודית, ובדרך כלל לא צריך לדעת מה היא. ברוב ה-Codelabs, תצטרכו להפנות למזהה הפרויקט (בדרך כלל הוא מזוהה כ-
PROJECT_ID). אם אתם לא אוהבים את המזהה שנוצר, אתם יכולים ליצור מזהה אקראי אחר. אפשר גם לנסות שם משתמש משלכם ולבדוק אם הוא זמין. אי אפשר לשנות את ההגדרה הזו אחרי השלב הזה, והיא תישאר כזו למשך הפרויקט. - לידיעתכם, יש ערך שלישי, מספר פרויקט, שחלק מממשקי ה-API משתמשים בו. מידע נוסף על שלושת הערכים האלה מופיע במאמרי העזרה.
- בשלב הבא, תצטרכו להפעיל את החיוב במסוף Cloud כדי להשתמש במשאבי Cloud או בממשקי API של Cloud. העלות של התרגול הזה לא אמורה להיות גבוהה, ואולי לא תהיה עלות בכלל. כדי להשבית את המשאבים ולא לחייב אתכם אחרי שתסיימו את המדריך הזה, תוכלו למחוק את המשאבים שיצרתם או למחוק את כל הפרויקט. משתמשים חדשים ב-Google Cloud זכאים לתוכנית תקופת ניסיון בחינם בשווי 300$.
הגדרת הסביבה
לוחצים על הסמל משמאל לסרגל החיפוש כדי להפעיל את Cloud Shell.

ב-Cloud Shell, מפעילים את Cloud Run API:
gcloud services enable run.googleapis.com
אם מתבקשים לאשר, לוחצים על 'אישור' כדי להמשיך.

אמורה להופיע הודעה על הצלחה, שדומה להודעה הזו:
Operation "operations/acf.p2-327036483151-73d90d00-47ee-447a-b600-a6badf0eceae" finished successfully.
3. הכנת הבקשה
קודם כל, תכינו אפליקציית Node.js פשוטה שמבוססת על express ומגיבה לבקשות HTTP.
ב-Cloud Shell, יוצרים ספרייה חדשה בשם starter-nodejs ועוברים אליה:
mkdir starter-nodejs
cd starter-nodejs
יוצרים קובץ package.json באמצעות הפקודות הבאות:
cat > ./package.json << EOF
{
"name": "cloudrun-starter-app",
"version": "1.0.0",
"description": "Node.js Starter Application",
"main": "index.js",
"scripts": {
"start": "node index.js"
},
"author": "",
"license": "Apache-2.0",
"dependencies": {
"express": "^4.18.2"
}
}
EOF
הקובץ שלמעלה מכיל פקודה של סקריפט הפעלה ותלות ב-Express, מסגרת אפליקציות האינטרנט.
לאחר מכן, באותה ספרייה, מריצים את הפקודות הבאות כדי ליצור קובץ index.js:
cat > ./index.js << EOF
const express = require('express');
const app = express();
app.get('/', (req, res) => {
console.log('Received a request.');
res.send("Hello Cloud Run!");
});
const port = process.env.PORT || 8080;
app.listen(port, () => {
console.log('Listening on port', port);
});
EOF
הקוד הזה יוצר שרת אינטרנט בסיסי שמקשיב ליציאה שמוגדרת על ידי משתנה הסביבה PORT. האפליקציה מוכנה עכשיו ליצירת קונטיינר ולפריסה.
4. פריסת אפליקציה של Cloud Run
מריצים את הפקודה הבאה כדי לפרוס את האפליקציה:
gcloud run deploy starter-app \
--source . \
--region us-central1 \
--allow-unauthenticated \
--max-instances=3
מאשרים את יצירת המאגר ב-Artifact Registry:
Deploying from source requires an Artifact Registry Docker repository to store built containers. A repository named [cloud-run-source-deploy] in region [us-central1] will be created. Do you want to continue (Y/n)? y
כתוצאה מהפקודה הקודמת, הפעולות הבאות יבוצעו:

אפשר לעיין בפלט של השלבים האלה במסוף Cloud: Cloud Build, Cloud Storage, Artifact Registry ו-Cloud Run.

5. מעולה!
מעולה! הרגע פרסת אפליקציה ב-Cloud Run.
הנושאים שנדון בהם:
- איך פורסים אפליקציית התחלה ב-Cloud Run
השלב הבא:
כדאי לעיין במדריכי Codelab נוספים של Cymbal Eats:
- הפעלת Cloud Workflows באמצעות Eventarc
- הפעלת עיבוד אירועים מ-Cloud Storage
- התחברות ל-CloudSQL פרטי מ-Cloud Run
- התחברות למסדי נתונים מנוהלים מ-Cloud Run
- אבטחת אפליקציה בלי שרת (serverless) באמצעות שרת proxy לאימות זהויות (IAP)
- הפעלת משימות של Cloud Run באמצעות Cloud Scheduler
- פריסה מאובטחת ב-Cloud Run
- אבטחה של תעבורת נתונים נכנסת (ingress) ב-Cloud Run
הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, אפשר למחוק את הפרויקט שמכיל את המשאבים, או להשאיר את הפרויקט ולמחוק את המשאבים בנפרד.
מחיקת הפרויקט
הדרך הקלה ביותר לבטל את החיוב היא למחוק את הפרויקט שיצרתם בשביל המדריך.