אחרי שמבצעים פריסה של ה-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:
- פותחים את הקובץ
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. - מחליפים את
[API_NAME]בשם ה-API (לדוגמה,bookstoreאוmy-cool-api). - מחליפים את
[PROJECT_ID]במזהה הפרויקט ב- Google Cloud . - מחליפים את
[IP_ADDRESS]בכתובת IPv4.לדוגמה, אם פורסים את שירות ה-API של Endpoints למופע של מכונה וירטואלית ב-Compute Engine, אפשר להשתמש בכתובת ה-IP החיצונית של המכונה הווירטואלית הזו. לחלופין, אם מריצים את הקוד בקבוצה של מופעים של מכונות וירטואליות (או תרמילי GKE) מאחורי מאזן עומסים, אפשר להשתמש בכתובת ה-IP של מאזן העומסים.
- מפרסמים את מפרט 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 החדשה תתעדכן.