תחילת העבודה עם Ruby

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

מטרות

עלויות

במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:

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

משתמשים חדשים של Google Cloud ? יכול להיות שאתם זכאים לתקופת ניסיון בחינם.

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

לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. כדי ליצור מסד נתונים של Firestore במצב Native, פועלים לפי השלבים הבאים:
    1. נכנסים לדף Firestore create database במסוף Google Cloud .

      מעבר ליצירת מסד נתונים ב-Firestore

    2. במסך Select a Cloud Firestore mode (בחירת מצב Cloud Firestore), לוחצים על Select Native Mode (בחירת מצב מקורי).
    3. בוחרים מיקום למסד הנתונים של Firestore. הגדרת המיקום הזו היא מיקום ברירת המחדל Google Cloud של משאבים בפרויקט Google Cloud . המיקום הזה משמש את השירותים בפרויקט שדורשים הגדרת מיקום, במיוחד את קטגוריית Cloud Storage שמוגדרת כברירת מחדל ואת אפליקציית Cloud Run.
    4. לוחצים על יצירת מסד נתונים.
  7. מפעילים את ממשקי ה-API של Artifact Registry,‏ Cloud Run Admin,‏ Cloud Build,‏ Cloud Storage,‏ Cloud Logging ו-Error Reporting.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

    הפעלת ממשקי ה-API

  8. משכפלים את מאגר הדוגמה ופותחים את אפליקציית הדוגמה ב-Cloud Shell:
    מעבר אל Cloud Shell

    ‫Cloud Shell נותנת גישה למשאבים שלכם ב-Google Cloud בממשק שורת פקודה ישירות מהדפדפן. Google Cloud

  9. כדי להוריד את הקוד לדוגמה ולעבור לספריית האפליקציה, לוחצים על המשך.
  10. ב-Cloud Shell, מגדירים את הכלי gcloud כך שישתמש בפרויקט החדש Google Cloud :

    # Configure gcloud for your project
    gcloud config set project PROJECT_ID

    מחליפים את PROJECT_ID במזהה הפרויקט שיצרתם באמצעות מסוף Google Cloud . Google Cloud

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

הפעלת האפליקציה

  1. מתקינים את יחסי התלות של האפליקציה באמצעות bundler:

    bundle install
    

  2. מריצים את הפקודה rails server:
    GOOGLE_CLOUD_PROJECT=PROJECT_ID bundle exec rails server -p 8080
    
    מחליפים את PROJECT_ID במזהה הפרויקט שיצרתם ב- Google Cloud .
  3. ב-Cloud Shell, לוחצים על תצוגה מקדימה באינטרנט , ובוחרים באפשרות תצוגה מקדימה ביציאה 8080. ייפתח חלון חדש עם האפליקציה הפועלת.

פריסת האפליקציה ב-Cloud Run

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

  1. מריצים את הקונטיינר באמצעות Cloud Run:
    gcloud run deploy bookshelf --region us-central1 --allow-unauthenticated \
    --set-env-vars="GOOGLE_CLOUD_PROJECT=PROJECT_ID" --source .

    עכשיו אפשר לראות את האפליקציה בכתובת ה-URL שמוצגת בפלט של gcloud run:

    Service [bookshelf] revision [bookshelf-00001] has been deployed and is serving 100 percent of traffic. 
    Service URL: https://bookshelf-swsmmh5s5a-uc.a.run.app
    
  2. מעתיקים את כתובת ה-URL לדפדפן האינטרנט כדי לראות את האפליקציה. דף הבית של אפליקציית מדף הספרים

מידע נוסף על פריסה ב-Cloud Run זמין במאמרי העזרה בנושא Cloud Run.

שמירת הנתונים באמצעות Firestore

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

‫Google Cloud יש כמה אפשרויות לאחסון הנתונים. בדוגמה הזו, משתמשים ב-Firestore כדי לאחסן את הנתונים של כל ספר. ‫Firestore הוא מסד נתונים מנוהל, בלי שרת (serverless) ולא יחסי (NoSQL) של מסמכים, שמאפשר לאחסן נתונים ולהריץ עליהם שאילתות. ‫Firestore מתרחב באופן אוטומטי כדי לענות על הצרכים של האפליקציה, ומתכווץ לאפס כשלא משתמשים בו. מוסיפים עכשיו את הספר הראשון.

  1. כדי ליצור ספר לאפליקציה שפרסתם, לוחצים על הוספת ספר.

    הוספת ספר לאפליקציית מדף הספרים
  2. בשדה Title, מזינים Moby Dick.
  3. בשדה Author (מחבר), מזינים Herman Melville.
  4. לוחצים על Save. עכשיו יש רשומה לאפליקציית Bookshelf.

    רשומה באפליקציית מדף הספרים של מובי דיק
  5. במסוף Google Cloud , כדי לרענן את הדף של Firestore, לוחצים על Refresh . הנתונים מופיעים ב-Firestore. אפליקציית Bookshelf מאחסנת כל ספר כמסמך Firestore עם מזהה ייחודי, וכל המסמכים האלה מאוחסנים באוסף Firestore. לצורך המדריך הזה, האוסף נקרא books. דוגמה למסמך Firestore.

‫Firestore מאחסן את הספרים באמצעות ספריית הלקוח של Firestore. דוגמה לאחזור מסמך Firestore:

require "google/cloud/firestore"
firestore = Google::Cloud::Firestore.new project_id: project_id
@collection = firestore.col "books"
book_snapshot = collection.doc(id).get
Book.from_snapspot book_snapshot if book_snapshot.data

מידע נוסף על השימוש ב-Firestore זמין במאמר בנושא הוספת נתונים ל-Firestore.

אחסון של קבצים שהועלו ב-Cloud Storage

אחרי שהוספתם ספר, הגיע הזמן להוסיף את תמונת השער של הספר. אי אפשר לאחסן קבצים במופעים. מסד נתונים הוא לא הבחירה הנכונה לקובצי תמונות. במקום זאת, משתמשים ב-Cloud Storage.

Cloud Storage הוא מאגר ה-Blob הראשי של Google Cloud. אתם יכולים להשתמש ב-Cloud Storage כדי לארח נכסי אפליקציה שאתם רוצים לשתף בין Google Cloud. כדי להשתמש ב-Cloud Storage, צריך ליצור קטגוריה של Cloud Storage, שהיא קונטיינר בסיסי לשמירת הנתונים.

  1. נכנסים לדף Cloud Storage Browser במסוף Google Cloud .

    כניסה לדף Cloud Storage Browser

  2. לוחצים על Create bucket.
  3. בתיבת הדו-שיח Create bucket, מזינים שם לקטגוריה על ידי הוספת Google Cloud מזהה הפרויקט למחרוזת _bucket, כך שהשם ייראה כמו YOUR_PROJECT_ID_bucket. השם הזה צריך לעמוד בדרישות למתן שמות של קטגוריות. אפשר להשאיר את כל שאר השדות בערכי ברירת המחדל שלהם.
  4. לוחצים על יצירה.
  5. אחרי שיוצרים את הקטגוריה, צריך להגדיר את האובייקטים כנגישים באופן ציבורי כדי שהמשתמשים יוכלו לראות אותם. במאמר הגדרת נתונים כציבוריים מוסבר איך להגדיר את האובייקטים כנגישים באופן ציבורי.
  6. לוחצים על עריכת הספר ובוחרים תמונה להעלאה ככריכת הספר. לדוגמה, אפשר להשתמש בתמונה הזו של דומיין ציבורי:
    כריכה של הספר מובי דיק
  7. לוחצים על Save. תועברו לדף הבית, שבו יש רשומה של אפליקציית מדף הספרים.
    רשומה באפליקציית מדף הספרים של מובי דיק

אפליקציית מדף הספרים שולחת קבצים שהועלו ל-Cloud Storage באמצעות ספריית הלקוח של Cloud Storage.

require "google/cloud/storage"
bucket_id = "#{project_id}_bucket"
storage = Google::Cloud::Storage.new project_id: config["project_id"],
                                     credentials: config["keyfile"]
bucket = storage.bucket bucket_id

מידע נוסף על השימוש ב-Cloud Storage זמין במאמר מבוא ל-Cloud Storage.

מעקב אחרי האפליקציה באמצעות Google Cloud Observability

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

מעקב אחרי יומנים באמצעות Cloud Logging

  1. ב Google Cloud, עוברים אל Logs Explorer.

    כניסה לדף Logs Explorer

    אתם יכולים לעקוב אחרי האפליקציה בזמן אמת. אם נתקלתם בבעיות באפליקציה, זה אחד המקומות הראשונים שכדאי לבדוק.

    Stackdriver Log Viewer
  2. ברשימה הנפתחת משאב, בוחרים באפשרות Cloud Run Revision, bookshelf.

מעקב אחר שגיאות באמצעות Error Reporting

  1. נכנסים לדף Error Reporting במסוף Google Cloud .
    מעבר לדף Error Reporting
    בדף Error Reporting מוצגות שגיאות וחריגים באפליקציה, ואפשר להגדיר התראות לגביהם.
  2. בדפדפן, עוברים אל /errorsכתובת ה-URL באפליקציה.
    YOUR_CLOUD_RUN_URL/errors

    פעולה זו יוצרת חריגה חדשה לבדיקה ושולחת אותה אל Google Cloud Observability.

  3. במסוף Google Cloud , חוזרים לדף Error Reporting. אחרי כמה רגעים השגיאה החדשה תופיע. לוחצים על טעינה אוטומטית מחדש כדי שלא תצטרכו לרענן את הדף באופן ידני.

    הודעת שגיאה מ-Error Reporting.

הסרת המשאבים

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

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

  1. במסוף Google Cloud , נכנסים לדף Manage resources.

    כניסה לדף Manage resources

  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  3. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.

המאמרים הבאים