הגדרת DNS בדומיין cloud.goog

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

  • מגדירים את .endpoints.PROJECT_ID.cloud.goog כשם הדומיין (כאשר PROJECT_ID הוא מזהה הפרויקט שלכם ב- Google Cloud).
  • או לרשום שם דומיין משלכם, כמו example.com, שכולל:
    • הגדרת שרתי שמות של DNS (או שימוש ב- Cloud DNS).
    • מתבצע עדכון של הכתובות במרשם.
    • יצירה ותחזוקה של רשומות DNS.

    אם כבר יש לכם תשתית DNS, או שאתם רוצים לרשום שם דומיין משלכם, תוכלו לקרוא מידע נוסף במאמר הצגת API משם הדומיין שלכם.

בדף הזה מוסבר איך להגדיר ממשקי Cloud Endpoints API כך שישתמשו ב-.endpoints.PROJECT_ID.cloud.goog כשם הדומיין. שלבי ההגדרה בדף הזה רלוונטיים לממשקי API שמשתמשים ב-OpenAPI ופועלים ב-Compute Engine, ב-Google Kubernetes Engine או ב-Kubernetes. אין תמיכה בשם הדומיין .endpoints.PROJECT_ID.cloud.goog בממשקי API שפועלים ב-App Engine. בממשקי API ב-App Engine, מומלץ להשתמש ב-PROJECT_ID.appspot.com כשם שירות ה-Endpoints. כשפורסים את ה-API ב-App Engine, נוצר באופן אוטומטי רשומה ב-DNS עם שם בפורמט PROJECT_ID.appspot.com.

הדומיין .cloud.goog מנוהל על ידי Google ומשותף בין לקוחות Google Cloud. מכיוון שלכל פרויקט יש מזהה פרויקט ייחודי גלובלית, שם דומיין בפורמט .endpoints.PROJECT_ID.cloud.goog הוא ייחודי ואפשר להשתמש בו כשם הדומיין של ה-API. Google Cloud הגדרת שם הדומיין .endpoints.PROJECT_ID.cloud.goog היא אופציונלית. אם אתם מעדיפים, אתם יכולים לרשום שם דומיין משלכם.

דרישות מוקדמות

כנקודת התחלה, בדף הזה מניחים שכבר יצרתם את Cloud Endpoints API ופרסתם אותו ב-Compute Engine, ב-Google Kubernetes Engine או ב-Kubernetes. אם אתם צריכים API לצורך בדיקה, אתם יכולים להשתמש באחד מהמדריכים שמסבירים איך להגדיר ולפרוס API לדוגמה.

הגדרת DNS

בקטע הבא מוסבר איך להגדיר DNS לממשקי API של Cloud Endpoints שמשתמשים ב-.endpoints.[PROJECT_ID].cloud.goog כשם השירות של Endpoints, כאשר [PROJECT_ID] מייצג את מזהה הפרויקט Google Cloud. לנוחותכם, בתהליך הזה קובץ התצורה של OpenAPI נקרא openapi.yaml.

כדי להגדיר DNS:

  1. פותחים את הקובץ openapi.yaml ומוסיפים את השדה x-google-endpoints לקובץ, כמו בקטע הקוד הבא:
        swagger: "2.0"
        host: "[API_NAME].endpoints.[PROJECT_ID].cloud.goog"
        x-google-endpoints:
        - name: "[API_NAME].endpoints.[PROJECT_ID].cloud.goog"
          target: "[IP_ADDRESS]"

    בדרך כלל, מגדירים את השדה host ואת השדה x-google-endpoints.name כך שיהיו זהים. כשפורסים את מפרט OpenAPI, הטקסט שצוין בשדה host משמש כשם של שירות Endpoints.

  2. מחליפים את [API_NAME] בשם ה-API (לדוגמה, bookstore או my-cool-api).
  3. מחליפים את [PROJECT_ID] במזהה הפרויקט ב- Google Cloud .
  4. מחליפים את [IP_ADDRESS] בכתובת IPv4.

    לדוגמה, אם פורסים את שירות ה-API של Endpoints למופע של מכונה וירטואלית ב-Compute Engine, אפשר להשתמש בכתובת ה-IP החיצונית של המכונה הווירטואלית הזו. לחלופין, אם מריצים את הקוד בקבוצה של מופעים של מכונות וירטואליות (או תרמילי GKE) מאחורי מאזן עומסים, אפשר להשתמש בכתובת ה-IP של מאזן העומסים.

  5. מפרסמים את מפרט OpenAPI החדש ב-Service Management באמצעות הפקודה הבאה:
    gcloud endpoints services deploy openapi.yaml

לדוגמה, אם מציינים את הדברים הבאים בקובץ openapi.yaml:

    swagger: "2.0"
    host: "my-cool-api.endpoints.my-project-id.cloud.goog"
    x-google-endpoints:
    - name: "my-cool-api.endpoints.my-project-id.cloud.goog"
      target: "192.0.2.1"

כשמפעילים את openapi.yaml באמצעות הפקודה gcloud הקודמת, Service Management יוצר רשומת DNS מסוג A‏, my-cool-api.endpoints.my-project-id.cloud.goog, שמפנה לכתובת ה-IP של היעד, 192.0.2.1. יכול להיות שתצטרכו להמתין כמה דקות עד שהגדרת ה-DNS החדשה תתעדכן.

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