הגדרת Endpoints OpenAPI לפונקציות Cloud Run באמצעות ESPv2

בדף הזה מוסבר איך להגדיר Cloud Endpoints בפונקציות Cloud Run. ‫Endpoints משתמש ב-Extensible Service Proxy V2 ‏ (ESPv2) כשער API. כדי לספק ניהול API לפונקציות Cloud Run, פורסים את קונטיינר ESPv2 שנוצר מראש ב-Cloud Run. לאחר מכן מאבטחים את הפונקציות באמצעות ניהול זהויות והרשאות גישה (IAM) בפונקציות של Cloud Run כדי ש-ESPv2 יוכל להפעיל אותן.

במסגרת ההגדרה הזו,‏ ESPv2 מיירט את כל הבקשות לפונקציות ומבצע את כל הבדיקות הנדרשות (כמו אימות) לפני הפעלת הפונקציה. כשהפונקציה מגיבה, ESPv2 אוסף נתוני טלמטריה ומדווח עליהם, כמו שמוצג באיור הבא. אפשר לראות את המדדים של הפונקציה בדף Endpoints > Services במסוף Google Cloud .

תרשים שמציג את הארכיטקטורה של Cloud Endpoints עם ESPv2 ו-Cloud Functions.

סקירה כללית של Cloud Endpoints זמינה במאמרים מידע על Endpoints וארכיטקטורת Endpoints.

מעבר ל-ESPv2

בגרסאות קודמות של Endpoints הייתה תמיכה בשימוש ב-Extensible Service Proxy‏ (ESP) עם פונקציות Cloud Run. אם יש לכם ממשקי API קיימים שאתם רוצים להעביר ל-ESPv2, תוכלו לקרוא מידע נוסף במאמר מעבר ל-Extensible Service Proxy V2.

רשימת משימות

אפשר להשתמש ברשימת המשימות הבאה במהלך העבודה עם המדריך. חובה לבצע את כל המשימות כדי להשלים את המדריך הזה.

  1. יוצרים Google Cloud פרויקט, ואם לא פרסתם פונקציות Cloud Run משלכם, פורסים פונקציית backend לדוגמה. לפני שמתחילים
  2. משריינים שם מארח ב-Cloud Run לשירות ESPv2. ראו שמירת שם מארח ב-Cloud Run.
  3. יוצרים מסמך OpenAPI שמתאר את ה-API ומגדירים את המסלולים לפונקציות Cloud Run. איך מגדירים נקודות קצה
  4. פורסים את מסמך ה-OpenAPI כדי ליצור שירות מנוהל. איך פורסים את ההגדרה של נקודות הקצה
  5. יצירת קובץ אימג' חדש של ESPv2 Docker עם הגדרות השירות של Endpoints. אפשר לעיין במאמר בנושא יצירת תמונה חדשה של ESPv2.
  6. פורסים את קונטיינר ESPv2 ב-Cloud Run. לאחר מכן, מעניקים ל-ESPv2 את הרשאת ה-IAM להפעלת השירות. מידע נוסף זמין במאמר בנושא פריסת מאגר ESPv2.
  7. הפעלת פונקציה. שליחת בקשה ל-API
  8. מעקב אחר הפעילות בפונקציות. מידע נוסף זמין במאמר בנושא מעקב אחר פעילות של API.
  9. כדי להימנע מחיובים בחשבון Google Cloud , מידע נוסף זמין במאמר בנושא הסרת המשאבים.

עלויות

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

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

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

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

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

לפני שמשתמשים ב-Endpoints לפונקציות Cloud Run, מומלץ:

  • יוצרים פרויקט חדש Google Cloud לשימוש כשפורסים את קונטיינר ESPv2 ב-Cloud Run.

  • יוצרים פרויקט חדש או בוחרים פרויקט קיים לפונקציות Cloud Run.

כדי להגדיר:

  1. במסוף Google Cloud , נכנסים לדף Manage resources ויוצרים פרויקט.

    כניסה לדף Manage resources

  2. מוודאים שיש את ההרשאות הנדרשות כדי להשלים את ההדרכה.

  3. מוודאים שהחיוב מופעל בפרויקט.

    איך מפעילים את החיוב

  4. חשוב לרשום את מזהה הפרויקט כי תצטרכו אותו בהמשך. בהמשך הדף הזה, מזהה הפרויקט הזה יופיע בתור ESPv2_PROJECT_ID.

  5. חשוב לשמור את מספר הפרויקט כי תצטרכו אותו בהמשך. בהמשך הדף הזה, מספר הפרויקט הזה יופיע כ-ESPv2_PROJECT_NUMBER.

  6. מורידים ומתקינים את Google Cloud CLI.

    הורדת ה-CLI של gcloud

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

התפקידים הנדרשים

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

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

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

שמירת שם מארח ב-Cloud Run

כדי להגדיר את מסמך ה-OpenAPI או את הגדרת שירות ה-gRPC, צריך לשריין שם מארח של Cloud Run לשירות ESPv2. כדי לשריין שם מארח, פורסים קונטיינר לדוגמה ב-Cloud Run ומשתמשים בחלק מכתובת ה-URL שנוצרה כשם המארח. בהמשך, תפרסו את קונטיינר ESPv2 באותו שירות לדוגמה של Cloud Run.

  1. מוודאים של-CLI של gcloud יש הרשאה לגשת לנתונים ולשירותים שלכם.
    1. מתחברים לחשבון.
      gcloud auth login
    2. בכרטיסייה החדשה בדפדפן שנפתחת, בוחרים חשבון שיש לו תפקיד עורך או בעלים בפרויקט Google Cloud שיצרתם כדי לפרוס את ESPv2 ב-Cloud Run.
  2. מגדירים את האזור.
    gcloud config set run/region us-central1
  3. פורסים את התמונה לדוגמה gcr.io/cloudrun/hello ב-Cloud Run. מחליפים את ESPv2_CLOUD_RUN_SERVICE_NAME בשם שרוצים לתת לשירות.
    gcloud run deploy ESPv2_CLOUD_RUN_SERVICE_NAME \
        --image="gcr.io/cloudrun/hello" \
        --allow-unauthenticated \
        --platform managed \
        --project=ESPv2_PROJECT_ID
    

    אם הפקודה מסתיימת בלי שגיאות, היא מחזירה הודעה שדומה לזו:

    Service [ESPv2_CLOUD_RUN_SERVICE_NAME] revision [ESPv2_CLOUD_RUN_SERVICE_NAME-REVISION_NUM] has been deployed and is serving traffic at ESPv2_CLOUD_RUN_SERVICE_URL

    לדוגמה, אם מגדירים את ESPv2_CLOUD_RUN_SERVICE_NAME ל-gateway:

    Service [gateway] revision [gateway-00001] has been deployed and is serving traffic at https://gateway-12345-uc.a.run.app

    בדוגמה הזו:

    • ESPv2_CLOUD_RUN_SERVICE_URL היא כתובת ה-URL של השירות https://gateway-12345-uc.a.run.app
    • ESPv2_CLOUD_RUN_HOSTNAME הוא שם המארח gateway-12345-uc.a.run.app.
  4. תציין את ESPv2_CLOUD_RUN_SERVICE_NAME ואת ESPv2_CLOUD_RUN_HOSTNAME. בהמשך פורסים את ESPv2 בשירות ESPv2_CLOUD_RUN_SERVICE_NAME Cloud Run. מציינים את ESPv2_CLOUD_RUN_HOSTNAME בשדה host במסמך OpenAPI.

הגדרת נקודות קצה

צריך ליצור מסמך OpenAPI שמבוסס על OpenAPI 2.0 או על OpenAPI 3.x, ומתאר את הסביבה של האפליקציות ואת דרישות האימות. מידע נוסף זמין במאמר גרסאות נתמכות של OpenAPI.

צריך גם להוסיף שדה ספציפי ל-Google שמכיל את כתובת ה-URL של כל אפליקציה, כדי של-ESPv2 יהיה המידע שהוא צריך כדי להפעיל אפליקציה. אם אתם חדשים ב-OpenAPI, תוכלו לקרוא מידע נוסף בסקירה כללית של OpenAPI.

  1. יוצרים קובץ טקסט בשם openapi-functions.yaml. לנוחותכם, בדף הזה אנחנו מתייחסים למסמך OpenAPI בשם הזה, אבל אתם יכולים לתת לו שם אחר אם אתם מעדיפים.
  2. כל אחת מהפונקציות שלכם צריכה להופיע בהגדרה x-google-backend (ב-OpenAPI 2.0) או בהגדרה x-google-api-management (ב-OpenAPI 3.x). לדוגמה:

    OpenAPI 2.0

    swagger: '2.0'
    info:
      title: Cloud Endpoints + GCF
      description: Sample API on Cloud Endpoints with a Google Cloud Functions backend
      version: 1.0.0
    host: HOST
    schemes:
      - https
    produces:
      - application/json
    paths:
      /hello:
        get:
          summary: Greet a user
          operationId: hello
          x-google-backend:
            address: https://REGION-FUNCTIONS_PROJECT_ID.cloudfunctions.net/FUNCTIONS_NAME
            protocol: h2
          responses:
            '200':
              description: A successful response
              schema:
                type: string

    ‫OpenAPI 3.x

    openapi: 3.0.4
    info:
      title: Cloud Endpoints + GCF
      description: Sample API on Cloud Endpoints with a Google Cloud Functions backend
      version: 1.0.0
    servers:
    - url: https://HOST
      x-google-endpoint: {}
    # Define reusable components in x-google-api-management
    x-google-api-management:
      backends:
        functions_backend:
          address: "https://REGION-FUNCTIONS_PROJECT_ID.cloudfunctions.net/FUNCTIONS_NAME"
          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: functions_backend
    paths:
      /hello:
        get:
          summary: Greet a user
          operationId: hello
          responses:
            '200':
              description: A successful response
              content:
                application/json:
                  schema:
                    type: string

    ההזחה חשובה בפורמט YAML. לדוגמה, השדה host (ב-OpenAPI 2.0) או האובייקט servers צריכים להיות באותה רמה כמו info.

  3. בשדה address, מחליפים את REGION באזור שבו הפונקציה ממוקמת, את FUNCTIONS_PROJECT_ID במזהה הפרויקט ואת FUNCTIONS_NAME בשם הפונקציה. Google Cloud Google Cloud אם רוצים לאבטח את פונקציית Cloud Run על ידי מתן אפשרות רק ל-ESPv2 להפעיל אותה, צריך לוודא שהשדה address כולל את שם הפונקציה אם לא צוין jwt_audience. לדוגמה:
    address: https://REGION-FUNCTIONS_PROJECT_ID.cloudfunctions.net/FUNCTIONS_NAME
    path_translation: CONSTANT_ADDRESS
    אם מציינים את jwt_audience, הערך שלו צריך לכלול גם את שם הפונקציה. לדוגמה:
    address: https://REGION-FUNCTIONS_PROJECT_ID.cloudfunctions.net
    jwt_audience: https://REGION-FUNCTIONS_PROJECT_ID.cloudfunctions.net/FUNCTIONS_NAME
    path_translation: APPEND_PATH_TO_ADDRESS
    ‫ESPv2 יוצר אסימון מזהה כשמתבצעת קריאה לפונקציית Cloud Run לצורך אימות. בטוקן ה-ID צריך להיות audience תקין שמציין את המארח של הפונקציה ואת שם הפונקציה. ‫ESPv2 מגדיר את audience לאסימון המזהה באמצעות הערך בשדה jwt_audience אם הוא מצוין, אחרת הוא משתמש בשדה address.
  4. מציינים את שם המארח של השירות. הערך הנדרש תלוי בגרסה של מפרט OpenAPI שבה אתם משתמשים.

    OpenAPI 2.0

    בשדה host מציינים את CLOUD_RUN_HOSTNAME, החלק של שם המארח בכתובת ה-URL שהוזמנה בהזמנת שם מארח ב-Cloud Run. לא כוללים את מזהה הפרוטוקול, https://. לדוגמה:

    swagger: '2.0'
      info:
        title: Cloud Endpoints + App Engine
        description: Sample API on Cloud Endpoints with an App Engine backend
        version: 1.0.0
      host: gateway-12345-uc.a.run.app

    ‫OpenAPI 3.x

    בשדה url של האובייקט servers, מציינים את כתובת ה-URL המלאה, כולל מזהה הפרוטוקול https:// ו-CLOUD_RUN_HOSTNAME, וחלק שם המארח של כתובת ה-URL שהוזמן בהזמנת שם מארח ב-Cloud Run. לדוגמה:

    openapi: 3.0.4
    info:
      title: Cloud Endpoints + App Engine
      description: Sample API on Cloud Endpoints with an App Engine backend
      version: 1.0.0
    servers:
    - url: https://gateway-12345-uc.a.run.app
      x-google-endpoint: {}
  5. שימו לב לערך של מאפיין title בקובץ openapi-functions.yaml:

    title: Cloud Endpoints + GCF

    הערך של המאפיין title הופך לשם של שירות Endpoints אחרי שפורסים את ההגדרה.

  6. שומרים את מסמך OpenAPI.

מידע על השדות במסמך OpenAPI שנדרשים ל-Endpoints מופיע במאמר בנושא הגדרת Endpoints.

פריסת ההגדרה של נקודות הקצה

כדי לפרוס את ההגדרה של Endpoints, משתמשים בפקודה gcloud endpoints services deploy. בפקודה הזו נעשה שימוש ב-Service Management כדי ליצור שירות מנוהל.

כדי לפרוס את ההגדרה של Endpoints:

  1. מוודאים שאתם נמצאים בספרייה שמכילה את מסמך OpenAPI.
  2. מעלים את ההגדרה ויוצרים שירות מנוהל.

    gcloud endpoints services deploy openapi-functions.yaml \
        --project ESPv2_PROJECT_ID

    כך נוצר שירות Endpoints חדש עם השם שציינתם בשדה host בקובץ openapi-functions.yaml. השירות מוגדר בהתאם למסמך OpenAPI.

    במהלך היצירה וההגדרה של השירות, Service Management מציג מידע במסוף. בסיום הפריסה, תוצג הודעה שדומה לזו:

    Service Configuration [CONFIG_ID] uploaded for service [CLOUD_RUN_HOSTNAME]

    CONFIG_ID הוא המזהה הייחודי של הגדרת שירות Endpoints שנוצר על ידי הפריסה. לדוגמה:

    Service Configuration [2019-02-01r0] uploaded for service [gateway-12345-uc.a.run.app]

    מזהה הגדרות השירות מורכב מחותמת זמן של התאריך וממספר הגרסה. אם פורסים את openapi-functions.yaml שוב באותו יום, מספר הגרסה גדל במזהה תצורת השירות. אפשר לראות את הגדרות השירות ואת היסטוריית הפריסה בדף Endpoints > Services במסוף Google Cloud .

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

בדיקת השירותים הנדרשים

לפחות, צריך להפעיל את שירותי Google הבאים כדי להשתמש ב-Endpoints וב-ESP:
שם כותרת
servicemanagement.googleapis.com Service Management API
servicecontrol.googleapis.com Service Control API

ברוב המקרים, הפקודה gcloud endpoints services deploy מפעילה את השירותים הנדרשים האלה. עם זאת, הפקודה gcloud מסתיימת בהצלחה אבל לא מפעילה את השירותים הנדרשים בנסיבות הבאות:

  • אם השתמשתם באפליקציה של צד שלישי כמו Terraform ולא כללתם את השירותים האלה.

  • הפריסה של הגדרת ה-Endpoints בוצעה בפרויקטGoogle Cloud קיים שבו השירותים האלה הושבתו באופן מפורש.

כדי לוודא שהשירותים הנדרשים מופעלים, משתמשים בפקודה הבאה:

gcloud services list

אם השירותים הנדרשים לא מופיעים ברשימה, צריך להפעיל אותם:

gcloud services enable servicemanagement.googleapis.com
gcloud services enable servicecontrol.googleapis.com

צריך גם להפעיל את שירות Endpoints:

gcloud services enable ENDPOINTS_SERVICE_NAME

כדי לדעת מהו ENDPOINTS_SERVICE_NAME, אפשר:

  • אחרי פריסת ההגדרה של Endpoints, נכנסים לדף Endpoints במסוף Cloud. רשימת האפשרויות האפשריות של ENDPOINTS_SERVICE_NAME מוצגת בעמודה שם השירות.

  • ב-OpenAPI, ‏ ENDPOINTS_SERVICE_NAME הוא הערך שציינתם בשדה host במפרט OpenAPI. ב-gRPC, ‏ ENDPOINTS_SERVICE_NAME הוא הערך שציינתם בשדה name בהגדרות של נקודות הקצה של gRPC.

מידע נוסף על פקודות gcloud זמין במאמר שירותי gcloud.

יצירת תמונה חדשה של ESPv2

יוצרים קובץ אימג' חדש של ESPv2 Docker מהגדרות השירות של Endpoints. בהמשך תפרסו את האימג' הזה בשירות Cloud Run השמור.

כדי ליצור את קובץ ההגדרות של השירות בקובץ אימג' חדש של ESPv2 Docker:

  1. מורידים את הסקריפט הזה למחשב המקומי שבו מותקן ה-CLI של gcloud.

  2. מריצים את הסקריפט באמצעות הפקודה הבאה:

    chmod +x gcloud_build_image
    
    ./gcloud_build_image -s ESPv2_CLOUD_RUN_HOSTNAME \
        -c CONFIG_ID -p ESPv2_PROJECT_ID

    בשדה ESPv2_CLOUD_RUN_HOSTNAME, מציינים את שם המארח של כתובת ה-URL שהזמנתם למעלה בקטע הזמנת שם מארח ב-Cloud Run. לא כוללים את מזהה הפרוטוקול, https://.

    לדוגמה:

    chmod +x gcloud_build_image
    
    ./gcloud_build_image -s gateway-12345-uc.a.run.app \
        -c 2019-02-01r0 -p your-project-id
  3. הסקריפט משתמש בפקודה gcloud כדי להוריד את הגדרות השירות, ליצור מהן קובץ אימג' חדש של ESPv2 ולהעלות את קובץ האימג' החדש למאגר הקונטיינרים של הפרויקט. הסקריפט משתמש אוטומטית בגרסה האחרונה של ESPv2, שמסומנת ב-ESPv2_VERSION בשם של תמונת הפלט. התמונה שנוצרה מועלית אל:

    gcr.io/ESPv2_PROJECT_ID/endpoints-runtime-serverless:ESPv2_VERSION-ESPv2_CLOUD_RUN_HOSTNAME-CONFIG_ID

    לדוגמה:

    gcr.io/your-project-id/endpoints-runtime-serverless:2.14.0-gateway-12345-uc.a.run.app-2019-02-01r0"

פריסת הקונטיינר של ESPv2

  1. פורסים את שירות ESPv2 Cloud Run עם האימג' החדש שיצרתם קודם. מחליפים את CLOUD_RUN_SERVICE_NAME באותו שם שירות של Cloud Run שבו השתמשתם כששריינתם את שם המארח במקור, כפי שמתואר במאמר שריון שם מארח ב-Cloud Run:

    gcloud run deploy CLOUD_RUN_SERVICE_NAME \
      --image="gcr.io/ESPv2_PROJECT_ID/endpoints-runtime-serverless:ESPv2_VERSION-CLOUD_RUN_HOSTNAME-CONFIG_ID" \
      --allow-unauthenticated \
      --platform managed \
      --project=ESPv2_PROJECT_ID
  2. אם רוצים להגדיר את Endpoints כך שישתמש באפשרויות נוספות להפעלה של ESPv2, כמו הפעלת CORS, אפשר להעביר את הארגומנטים במשתנה הסביבה ESPv2_ARGS:

    gcloud run deploy CLOUD_RUN_SERVICE_NAME \
      --image="gcr.io/ESPv2_PROJECT_ID/endpoints-runtime-serverless:ESPv2_VERSION-CLOUD_RUN_HOSTNAME-CONFIG_ID" \
      --set-env-vars=ESPv2_ARGS=--cors_preset=basic \
      --allow-unauthenticated \
      --platform managed \
      --project ESPv2_PROJECT_ID

    למידע נוסף ולדוגמאות על הגדרת משתנה הסביבה ESPv2_ARGS, כולל רשימת האפשרויות הזמינות ומידע על ציון כמה אפשרויות, אפשר לעיין במאמר דגלים של Extensible Service Proxy V2 Beta.

  3. נותנים ל-ESPv2 הרשאה לבצע קריאה ל-Service Management ול-Service Control.
    • נכנסים לדף Cloud Run במסוף Google Cloud .
    • כניסה לדף Cloud Run

    • תוכלו לראות את מופע Cloud Run שפרסתם ואת חשבון השירות שמשויך אליו.
    • מקצים לחשבון השירות את ההרשאות הנדרשות:
    • gcloud projects add-iam-policy-binding PROJECT_NAME \
         --member "serviceAccount:SERVICE_ACCOUNT" \
         --role roles/servicemanagement.serviceController
    מידע נוסף זמין במאמר מהם תפקידים והרשאות?
  4. נותנים ל-ESPv2 הרשאה להפעיל את הפונקציות. מריצים את הפקודה הבאה לכל פונקציה. בפקודה הבאה:
    • מחליפים את FUNCTION_NAME בשם הפונקציה ואת FUNCTION_REGION באזור שבו הפונקציה נפרסה. אם אתם משתמשים בפונקציה שנוצרה במדריך למתחילים שימוש ב-Google Cloud CLI, צריך להשתמש ב-helloGET כשם.
    • מחליפים את ESPv2_PROJECT_NUMBER במספר הפרויקט שיצרתם עבור ESPv2. אחת הדרכים למצוא את זה היא להיכנס לדף IAM במסוף Google Cloud ולמצוא את חשבון השירות שמוגדר כברירת מחדל ל-Compute, שהוא חשבון השירות שמשמש בדגל member.
    gcloud functions add-iam-policy-binding FUNCTION_NAME \
       --region FUNCTION_REGION \
       --member "serviceAccount:ESPv2_PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
       --role "roles/cloudfunctions.invoker" \
       --project FUNCTIONS_PROJECT_ID
    

מידע נוסף זמין במאמר ניהול גישה באמצעות IAM.

שליחת בקשות ל-API

בקטע הזה נסביר איך לשלוח בקשות ל-API.

  1. יוצרים משתנה סביבה לשם של שירות Endpoints. זה השם שציינתם בשדה host במסמך OpenAPI. לדוגמה:
    • Linux או macOS:

      export ENDPOINTS_HOST=gateway-12345-uc.a.run.app

    • Windows PowerShell:

      $Env: ENDPOINTS_HOST="gateway-12345-uc.a.run.app"

‫Linux או Mac OS

משתמשים ב-curl כדי לשלוח בקשת HTTP באמצעות משתנה הסביבה ENDPOINTS_HOST שהגדרתם בשלב הקודם.

curl --request GET \
   --header "content-type:application/json" \
   "https://${ENDPOINTS_HOST}/hello"

PowerShell

משתמשים ב-Invoke-WebRequest כדי לשלוח בקשת HTTP באמצעות משתנה הסביבה ENDPOINTS_HOST שהגדרתם בשלב הקודם.

(Invoke-WebRequest -Method GET `
    -Headers @{"content-type"="application/json"} `
    -URI "https://$Env:ENDPOINTS_HOST/hello").Content

בדוגמה הקודמת, שתי השורות הראשונות מסתיימות בגרש הפוך. כשמדביקים את הדוגמה ב-PowerShell, צריך לוודא שאין רווח אחרי התווים '`'. מידע על האפשרויות שבהן נעשה שימוש בבקשת הדוגמה מופיע במאמר Invoke-WebRequest במסמכי התיעוד של מיקרוסופט.

אפליקציה של צד שלישי

אפשר להשתמש באפליקציה של צד שלישי כמו התוסף Postman לדפדפן Chrome כדי לשלוח בקשה.

  • בוחרים באפשרות GET כפועל ה-HTTP.
  • בכותרת, בוחרים את המפתח content-type ואת הערך application/json.
  • משתמשים בכתובת ה-URL בפועל במקום במשתנה הסביבה, לדוגמה:

    https://gateway-12345-uc.a.run.app/hello
    

אם לא קיבלתם תגובה, אפשר להיעזר במאמר בנושא פתרון בעיות שקשורות לתגובות.

הרגע פרסתם ובדקתם API ב-Endpoints!

מעקב אחר פעילות ב-API

  1. אפשר לראות את הגרפים של הפעילות ב-API בדף Endpoints ‏ > Service במסוף Google Cloud .

    הצגת גרפים של פעילות ב-Endpoints

    יכול להיות שיעברו כמה רגעים עד שהבקשה תשתקף בתרשימים.

  2. מעיינים ביומני הבקשות של ה-API בדף Logs Explorer. הצגת יומני הבקשות של Endpoints

הסרת המשאבים

כדי לא לצבור חיובים לחשבון Google Cloud על המשאבים שבהם השתמשתם בדף הזה, פועלים לפי השלבים הבאים:

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

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