עדכון שירות האינטרנט

מזהה אזור

REGION_ID הוא קוד מקוצר ש-Google מקצה על סמך האזור שבוחרים כשיוצרים את האפליקציה. הקוד לא תואם למדינה או למחוז, למרות שחלק ממזהי האזורים עשויים להיראות דומים לקודים נפוצים של מדינות ומחוזות. באפליקציות שנוצרו אחרי פברואר 2020, REGION_ID.r נכלל בכתובות URL של App Engine. באפליקציות קיימות שנוצרו לפני התאריך הזה, מזהה האזור הוא אופציונלי בכתובת ה-URL.

מידע נוסף על מזהי אזורים

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

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

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

  1. יוצרים פרויקט Google Cloud עם אפליקציית App Engine.
  2. כתיבה של שירות אינטרנט פשוט ב-Node.js.
  3. פריסת שירות האינטרנט ב-App Engine.

עדכון של דוגמה לשירות אינטרנט

בקטעים הבאים מוספים לשרת האינטרנט לדוגמה טופס ומטפל (handler) שמגיב כשמשתמש שולח את הטופס.

יצירת טופס לקלט של משתמשים

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

  1. בתיקייה my-nodejs-service, יוצרים תיקייה בשם views כדי לאחסן את קובצי ה-HTML.

  2. בתיקייה views, יוצרים קובץ בשם form.html ומוסיפים את הקוד הבא:

    <!DOCTYPE html>
    <html>
      <head>
        <title>My App Engine App</title>
      </head>
      <body>
        <h2>Create a new post</h2>
        <form method="POST" action="/submit">
          <div>
            <input type="text" name="name" placeholder="Name">
          </div>
          <div>
            <textarea name="message" placeholder="Message"></textarea>
          </div>
          <div>
            <button type="submit">Submit</button>
          </div>
        </form>
      </body>
    </html>

בטופס הפשוט הזה המשתמש יכול להזין שם והודעה כדי לשלוח לשרת. הנתונים נשלחים באמצעות בקשת HTTP POST אל /submit, כפי שמצוין במאפיינים method ו-action ברכיב <form>.

בשלב הזה, מבנה הקבצים צריך להיות כזה:

my-nodejs-service/
  views/
    form.html
  app.yaml
  package.json
  server.js

הצגת הטופס

  1. מוסיפים את השורה הבאה לחלק העליון של קובץ server.js כדי לייבא את המודול path:

    const path = require(`path`);
    
  2. מוסיפים את ה-handler הבא של Express כדי להציג את הטופס כשמשתמש גולש אל /submit:

    app.get('/submit', (req, res) => {
      res.sendFile(path.join(__dirname, '/views/form.html'));
    });

יצירת handler לנתונים שנשלחו

כשמשתמש שולח הודעה לשרת, בקשת POST עם הנתונים נשלחת אל /submit. כדי לקרוא את הנתונים מגוף הבקשה, משתמשים בתווכה Express urlencoded ויוצרים מטפל בקשות חדש.

  1. מגדירים את האפליקציה לשימוש בתוכנת ביניים של Express urlencoded:

    // This middleware is available in Express v4.16.0 onwards
    app.use(express.urlencoded({extended: true}));
  2. מוסיפים רכיב handler של POST לקובץ server.js כדי לקרוא את הנתונים:

    app.post('/submit', (req, res) => {
      console.log({
        name: req.body.name,
        message: req.body.message,
      });
      res.send('Thanks for your message!');
    });

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

בדיקת הטופס באופן מקומי

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

  1. מפעילים את שרת Node.js:

    npm start
    
  2. הצגת הטופס בכתובת http://localhost:8080/submit.

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

פריסת השינויים

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

  1. מהתיקייה my-nodejs-service, מריצים את הפקודה הבאה:

    gcloud app deploy
    

    זו אותה פקודה שלמדתם בפריסת שירות האינטרנט.

  2. מוודאים שגרסה חדשה מופיעה ב Google Cloud מסוף:

    הצגת הגרסאות

    אמורות להופיע שתי גרסאות שמתאימות לפריסה הקודמת ולפריסה הנוכחית.

אחרי הפריסה, הטופס החדש יהיה זמין בכתובת https://PROJECT_ID.REGION_ID.r.appspot.com/submit. אפשר להשתמש בו כדי לשלוח הודעה או שתיים.

אם כבר אין לכם צורך בגרסה הקודמת, אתם יכולים למחוק אותה מדף הגרסאות במסוף Google Cloud .

השלבים הבאים

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