מדריך ל-Cloud Run Starter

1. סקירה כללית

Cloud Run היא פלטפורמה מנוהלת באופן מלא ללא שרת (serverless) שמאפשרת להריץ קונטיינרים ללא שמירת מצב שאפשר להפעיל באמצעות בקשות HTTP. ‫Cloud Run הוא שירות בלי שרת (serverless): הוא מסתיר את כל ניהול התשתית, כך שתוכלו להתמקד במה שהכי חשוב – יצירת אפליקציות מעולות.

הוא מבוסס על Knative, ומאפשר לכם לבחור אם להריץ את הקונטיינרים שלכם באופן מנוהל לחלוטין באמצעות Cloud Run, או באשכול Google Kubernetes Engine באמצעות Cloud Run ב-GKE.

מה תלמדו

בשיעור Lab זה תלמדו איך:

  • פריסת אפליקציית Cloud Run

דרישות מוקדמות

  • ההנחה בשיעור ה-Lab הזה היא שאתם מכירים את הסביבות של Cloud Console ו-Cloud Shell.

2. הגדרה ודרישות

הגדרה של פרויקט ב-Cloud

  1. נכנסים ל-מסוף Google Cloud ויוצרים פרויקט חדש או משתמשים בפרויקט קיים. אם עדיין אין לכם חשבון Gmail או Google Workspace, אתם צריכים ליצור חשבון.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

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

הגדרת הסביבה

לוחצים על הסמל משמאל לסרגל החיפוש כדי להפעיל את Cloud Shell.

ecdc43ada29e91b.png

ב-Cloud Shell, מפעילים את Cloud Run API:

gcloud services enable run.googleapis.com

אם מתבקשים לאשר, לוחצים על 'אישור' כדי להמשיך.

6356559df3eccdda.png

אמורה להופיע הודעה על הצלחה, כמו זו:

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

כתוצאה מהפקודה הקודמת, יבוצעו הפעולות הבאות:

d661616f9b2fffcf.png

בודקים את הפלט של השלבים האלה במסוף Cloud: ‏ Cloud Build, ‏ Cloud Storage, ‏ Artifact Registry ו-Cloud Run.

f536961280192919.png

5. מעולה!

מעולה! הרגע פרסת אפליקציה ב-Cloud Run.

הנושאים שדיברנו עליהם:

  • איך פורסים אפליקציית התחלה ב-Cloud Run

השלב הבא:

כדאי לעיין במדריכי Codelab נוספים של Cymbal Eats:

הסרת המשאבים

כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, אפשר למחוק את הפרויקט שמכיל את המשאבים, או להשאיר את הפרויקט ולמחוק את המשאבים בנפרד.

מחיקת הפרויקט

הדרך הקלה ביותר לבטל את החיוב היא למחוק את הפרויקט שיצרתם בשביל המדריך.