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

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

מטרות

עלויות

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

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

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

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

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

  1. 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

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

  3. כדי ליצור מסד נתונים של Firestore במצב Native:
    1. נכנסים לדף Firestore create database במסוף Google Cloud .

      כניסה לדף יצירת מסד נתונים ב-Firestore

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

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

    כדי להפעיל ממשקי API, צריך את ההרשאה serviceusage.services.enable. אם אתם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, אתם יכולים לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים?

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

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

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

  6. בהודעה שמופיעה, לוחצים על Confirm כדי לשכפל את המאגר.
  7. ב-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. מתקינים את יחסי התלות של האפליקציה באמצעות composer:

    composer install
    

  2. מריצים את שרת האינטרנט המובנה של PHP:

    GOOGLE_CLOUD_PROJECT=PROJECT_ID php -S localhost:8080
    

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

  3. ב-Cloud Shell, לוחצים על Web preview , ובוחרים באפשרות Preview on port 8080. ייפתח חלון חדש עם האפליקציה שפועלת.

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

Google Cloud מציע כמה אפשרויות להרצת הקוד. בדוגמה הזו, פורסים את האפליקציה הניתנת להתאמה ב-Cloud Run. ב-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 לדפדפן האינטרנט כדי להציג את האפליקציה. דף הבית של אפליקציית Bookshelf

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

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

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

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

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

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

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

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

// Use the client library to call Firestore
use Google\Cloud\Firestore\FirestoreClient;

$firestore = new FirestoreClient([
    'projectId' => $projectId,
]);
$collection =  $firestore->collection($collectionName);
$bookRef = $collection->document($bookId);
$snapshot = $bookRef->snapshot();

למידע נוסף על השימוש ב-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. תועברו לדף הבית, שבו יש כניסה לאפליקציית Bookshelf.
    רשומת האפליקציה "מובי דיק" ב-Bookshelf

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

// Use the client library to call Cloud Storage
use Google\Cloud\Storage\StorageClient;

$storage = new StorageClient([
    'projectId' => $projectId,
]);
$bucketId = $projectId . '_bucket';
$gcsBucket = $storage->bucket($bucketId);

למידע נוסף על השימוש ב-Cloud Storage, קראו את המבוא ל-Cloud Storage.

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

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

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

  1. ב Google Cloud, נכנסים לדף Logs Explorer.

    כניסה לדף Logs Explorer

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

    מציג היומנים של Stackdriver
  2. ברשימה הנפתחת Resource, בוחרים באפשרות Cloud Run Revision, bookshelf.

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

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

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

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

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

הסרת המשאבים

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

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

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

    כניסה לדף Manage resources

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

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