תחילת העבודה עם API Gateway ו-App Engine
בדף הזה מוסבר איך להגדיר את API Gateway כדי לנהל ולאבטח שירות קצה עורפי של App Engine.
רשימת משימות
אפשר להשתמש ברשימת המשימות הבאה במהלך העבודה עם המדריך. כל המשימות נדרשות כדי לפרוס שער API לשירות הקצה העורפי של App Engine.
- יוצרים או בוחרים Google Cloud פרויקט.
- אם לא פרסתם אפליקציית App Engine משלכם, פרסו אפליקציה לדוגמה. מידע נוסף זמין במאמר לפני שמתחילים.
- מפעילים את שירותי API Gateway הנדרשים.
- מגדירים את IAP כדי לאבטח את האפליקציה. איך מגדירים את IAP
- יוצרים תיאור OpenAPI שמתאר את ה-API ומגדירים את המסלולים ל-App Engine. איך יוצרים הגדרת API
- פורסים שער API באמצעות הגדרת ה-API. מידע נוסף זמין במאמר בנושא פריסת API Gateway.
- מעקב אחר הפעילות באפליקציות. מידע נוסף זמין במאמר בנושא מעקב אחר פעילות של API.
- כדי להימנע מחיובים בחשבון Google Cloud , מידע נוסף זמין במאמר בנושא הסרת המשאבים.
לפני שמתחילים
במסוף Google Cloud , עוברים לדף Dashboard ובוחרים פרויקט ב- Google Cloud או יוצרים אותו.
מוודאים שהחיוב מופעל בפרויקט.
רושמים או זוכרים את מזהה הפרויקט שבו רוצים להשתמש במדריך הזה. בהמשך הדף הזה, מזהה הפרויקט הזה יופיע בתור PROJECT_ID.
מורידים ומתקינים את Google Cloud CLI.
עדכון רכיבים של
gcloud:gcloud components update
מגדירים את פרויקט ברירת המחדל. מחליפים את PROJECT_ID במזהה הפרויקט ב- Google Cloud :
gcloud config set project PROJECT_ID
אם לא פרסתם אפליקציית App Engine משלכם, אתם יכולים לפעול לפי השלבים שבמדריך לתחילת העבודה עם App Engine בשפה שלכם כדי להשתמש ב-Google Cloud CLI לבחירה או ליצירה של פרויקט ולפריסה של אפליקציה לדוגמה. כדאי לרשום את כתובת ה-URL של האפליקציה, את האזור ואת מזהה הפרויקט שבו האפליקציה נפרסה. Google Cloud
הפעלת שירותים נדרשים
כדי להשתמש ב-API Gateway, צריך להפעיל את השירותים הבאים של Google Cloud :
| שם | שם השירות |
|---|---|
| API Gateway API | apigateway.googleapis.com |
| Service Management API | servicemanagement.googleapis.com |
| Service Control API | servicecontrol.googleapis.com |
כדי להפעיל את השירותים הנדרשים:
מסוף Google Cloud
במסוף Google Cloud , נכנסים לדף APIs & Services > API Library.
- בדף API Library, מזינים את שם ה-API הנדרש בסרגל החיפוש.
- בתוצאות החיפוש, בוחרים את דף ה-API.
- בדף ה-API, לוחצים על הפעלה.
- חוזרים על השלבים האלה לכל אחד מהשירותים שמפורטים בטבלה הקודמת.
Google Cloud CLI
משתמשים בפקודות הבאות כדי להפעיל את השירותים:
gcloud services enable apigateway.googleapis.comgcloud services enable servicemanagement.googleapis.comgcloud services enable servicecontrol.googleapis.com
מידע נוסף על שירותי gcloud זמין במאמר בנושא שירותי gcloud.
הגדרת רכישות מתוך האפליקציה כדי לאבטח את האפליקציה
כדי לאבטח את אפליקציית App Engine, צריך להשתמש בשרת proxy לאימות זהויות (IAP) כדי לוודא שהבקשות מאומתות. התהליך הזה כולל ציון של החברים שצריכים לקבל את התפקיד IAP-secured Web App User שנדרש לפרויקט.
פועלים לפי השלבים להפעלת רכישות מתוך האפליקציה ומוודאים שאפשר להיכנס לאפליקציה.
יצירת הגדרת API
כדי להשתמש ב-API Gateway לניהול התנועה אל קצה העורף של App Engine שפרסתם, צריך להגדיר תצורת API.
אפשר ליצור הגדרת API באמצעות תיאור OpenAPI שמכיל הערות מיוחדות להגדרת ההתנהגות של API Gateway שנבחר. תצטרכו להוסיף שדה ספציפי ל-Google שמכיל את כתובת ה-URL של כל אפליקציית App Engine, כדי של-API Gateway יהיה את המידע שהוא צריך כדי להפעיל אפליקציה.
פרטים נוספים על תוספי OpenAPI נתמכים זמינים במאמרים הבאים:
כדי ליצור את הגדרות ה-API:
- יוצרים קובץ טקסט בשם
openapi-appengine.yaml. לנוחותכם, בדף הזה אנחנו מתייחסים לתיאור OpenAPI לפי שם הקובץ הזה, אבל אתם יכולים לתת לו שם אחר אם אתם מעדיפים. - מעתיקים את התוכן של הקובץ הבא לקובץ
openapi-run.yaml:OpenAPI 2.0
# openapi-appengine.yaml swagger: '2.0' info: title: API_ID optional-string description: Sample API on API Gateway with an App Engine backend version: 1.0.0 schemes: - https produces: - application/json paths: /hello: get: summary: Greet a user operationId: hello x-google-backend: address: APP_URL jwt_audience: IAP_CLIENT_ID responses: '200': description: A successful response schema: type: string
- בשדה
title, מחליפים את API_ID בשם ה-API ואת optional-string בתיאור קצר לבחירתכם. אם ה-API שלכם עדיין לא קיים, הפקודה ליצירת הגדרת ה-API תיצור גם את ה-API עם השם שציינתם. הערך של השדהtitleמשמש ליצירת מפתחות API שמעניקים גישה ל-API הזה. הנחיות למתן שמות ל-API מופיעות במאמר בנושא דרישות לגבי מזהה API. - בשדה
addressבקטעx-google-backend, מחליפים את APP_URL בכתובת ה-URL בפועל של שירות App Engine (הנתיב המלא של ה-API שנקרא). לדוגמה,https://myapp.an.r.appspot.com/hello.מחליפים את IAP_CLIENT_ID במזהה הלקוח ב-OAuth שיצרתם כשאתם מגדירים את IAP.
OpenAPI 3.x
# openapi-appengine.yaml openapi: 3.0.4 info: title: API_ID optional-string description: Sample API on API Gateway with an App Engine backend version: 1.0.0 # Define reusable components in x-google-api-management x-google-api-management: backends: appengine_backend: address: APP_URL jwtAudience: IAP_CLIENT_ID deadline: 30.0 pathTranslation: APPEND_PATH_TO_ADDRESS protocol: "http/1.1" # Apply the backend configuration by referencing it by name. Set at the root so this applies to all operations unless overridden. x-google-backend: appengine_backend paths: /hello: get: summary: Greet a user operationId: hello responses: '200': description: A successful response schema: type: string
- בשדה
title, מחליפים את API_ID בשם ה-API ואת optional-string בתיאור קצר לבחירתכם. אם ה-API שלכם עדיין לא קיים, הפקודה ליצירת הגדרת ה-API תיצור גם את ה-API עם השם שציינתם. הערך של השדהtitleמשמש ליצירת מפתחות API שמעניקים גישה ל-API הזה. הנחיות למתן שמות ל-API מופיעות במאמר בנושא דרישות לגבי מזהה API. - בשדה
address, מחליפים את APP_URL בכתובת ה-URL בפועל של שירות App Engine (הנתיב המלא של ה-API שנקרא). לדוגמה,https://myapp.an.r.appspot.com/hello.מחליפים את IAP_CLIENT_ID במזהה הלקוח ב-OAuth שיצרתם כשאתם מגדירים את IAP.
- בשדה
- מזינים את הפקודה הבאה, כאשר:
- CONFIG_ID מציין את השם של הגדרת ה-API.
- API_ID מציין את השם של ה-API. אם ה-API עדיין לא קיים, הפקודה הזו יוצרת אותו.
-