לפני שפורסים שירות ב-Cloud Run, אפשר לפתח אותו באופן מקומי באמצעות אמולטור של Cloud Run.
הגדרת השירות לפיתוח
אם לא מוגדר קובץ .vscode/launch.json, בתיבת הדו-שיח Run/Debug on Cloud Run Emulator אפשר להגדיר את ההפעלה ואז לשמור את ההגדרות בקובץ .vscode/launch.json. אם יש לכם קובץ .vscode/launch.json מוגדר, אתם יכולים לערוך אותו ישירות.
כדי להריץ את השירות באופן מקומי, מציינים את ההגדרה:
- פותחים את לוח הפקודות (מקישים על
Ctrl/Cmd+Shift+Pאו לוחצים על View (תצוגה) > Command Palette (לוח הפקודות)) ואז מריצים את הפקודה Run on Cloud Run Emulator (הרצה ב-Cloud Run Emulator). בתיבת הדו-שיח Run/Debug on Cloud Run Emulator, מגדירים את המפרט של ההגדרה:
- רק כלי בנייה שמותקנים באופן מקומי זמינים ב-Cloud Run Emulator
- בוחרים באפשרות Docker או Buildpacks ככלי לבנייה, ואז מציינים את המקור.
- (אופציונלי) כדי לציין משתני סביבה להעברה למאגרי הנתונים הפעילים, מרחיבים את הגדרות מתקדמות של גרסת ה-build ואז לוחצים כדי לציין זוגות של מפתח-ערך.
שם תיאור דוגמה PORT היציאה שבה שרת ה-HTTP מאזין. 8080 K_SERVICE השם של שירות Cloud Run שמופעל. hello-world K_REVISION השם של גרסת Cloud Run שמופעלת. hello-world.1 K_CONFIGURATION השם של הגדרת Cloud Run שיצרה את הגרסה. hello-world - (אופציונלי) כדי לציין חיבורים ל-Cloud SQL, מרחיבים את הגדרות שירות מתקדמות, לוחצים על חיבורים ומציינים חיבור אחד ל-Cloud SQL בכל שורה.
- (אופציונלי) מסמנים את האפשרות השירות יהיה נגיש ממכשירים אחרים ברשת המקומית.
- (אופציונלי) אם רוצים לבנות מחדש ולהפעיל את השירות באופן ידני בלבד, ולא באופן אוטומטי כשמבצעים שינוי, מבטלים את הסימון של האפשרות Automatically re-build and re-run on changes (בנייה מחדש והפעלה מחדש אוטומטיות כשמבצעים שינויים).
הפעלת השירות באופן מקומי
אחרי שמגדירים את ההגדרות הרצויות, מפעילים את השירות על ידי לחיצה על הפעלה.
אם תתבקשו, אמתו את פרטי הכניסה כדי להריץ ולנפות באגים באפליקציה באופן מקומי.
עוקבים אחרי סטטוס הפריסה בחלון הפלט.
אחרי שהפריסה תושלם, תוכלו לראות את השירות הפועל על ידי פתיחת כתובת ה-URL שמוצגת בחלון הפלט.
כדי לראות את הרישומים המפורטים, עוברים לתצוגה המפורטת של Cloud Run בחלון הפלט.

אחרי שהסשן מסתיים, לוחצים לחיצה ימנית כדי להשתמש בפקודות הבאות:
- הצגת יומנים: פותחים את יומני האפליקציה של פריסה ספציפית באמצעות הכלי Cloud Code logs explorer.
- פתיחת כתובת URL: פתיחה של כתובת ה-URL של שירות האפליקציה של שירות ספציפי בדפדפן אינטרנט.
אם השבתתם את מצב הצפייה בהגדרות ההפעלה ואתם רוצים לבצע שינויים באפליקציה, לבנות אותה מחדש ולפרוס אותה מחדש, אתם יכולים ללחוץ על סרגל הסטטוס של Cloud Code ואז על הפעלת מצב צפייה.
כדי להפסיק את הפריסה, אפשר ללחוץ על הלחצן הפסקה בסרגל הפעולות של הפריסה הנוכחית.

אחסון סודות
אם הקוד שלכם כולל נתונים רגישים כמו מפתחות API, סיסמאות ואישורים, אחסון שלהם כסודות יכול לעזור לכם לאבטח אותם. האינטגרציה של Cloud Code עם Secret Manager מאפשרת לכם לאחסן את הסודות האלה בצורה מאובטחת ולאחזר אותם באופן פרוגרמטי. במדריך Secret Manager מוסבר איך ליצור סודות ולנהל אותם באמצעות Cloud Code.
התאמה אישית של הגדרת launch.json קיימת
תוסף Cloud Code מעדכן את launch.json קובץ ההגדרות באופן אוטומטי כשבוחרים פעולת הפעלה. כדי להתאים אישית את אופן ההפעלה של השירות, אפשר לציין את השדות הבאים בקובץ .vscode/launch.json:
watch: עוקב אחרי שינויים בסביבת העבודה ומפעיל מחדש את השירות. ערך ברירת המחדל הוא True.
בדוגמה הבאה, השעון מוגדר ל-
true:"watch": true,build: מציינים את ה-builder (Docker, jibMaven, jibGradle או buildpacks) שבאמצעותו ייבנו קובצי האימג' שלכם.
בדוגמה הבאה מוצג Docker builder:
"build": { "docker": { "path": "Dockerfile" } },בדוגמה הבאה מוצג כלי ליצירת חבילות buildpack:
"build": { "buildpacks": { "path": "src/requirements.txt", "builder": "gcr.io/buildpacks/builder:v1" } },image: מציינים את שם התמונה שבה רוצים להשתמש.
בדוגמה הבאה אפשר לראות איך מציינים שם של תמונה:
"image": "hello-world",service: מציינים את שירות Cloud Run שבו רוצים להשתמש.
בדוגמה הבאה אפשר לראות איך מציינים שם שירות, יציאה ומגבלות משאבים:
"service": { "name": "hello-world", "containerPort": 8080, "resources": { "limits": { "memory": "256Mi" } } },debug: מציינים הגדרות ניפוי באגים, כמו מיפוי נתיבים מרוחקים למיפוי נתיב מקומי לנתיב בקונטיינר המרוחק.
בדוגמה הבאה מוצג קטע של ניפוי באגים שמציין את המיקום של קובצי המקור:
"debug": { "sourceFileMap": { "${workspaceFolder}": "/app" } }