גישה לנקודות קצה (endpoints) אזוריות של API

בדף הזה מוסבר איך להשתמש בנקודות קצה אזוריות ל-API (נקודות קצה אזוריות) ב-Google Cloud, שזמינות לאזור me-central2 (KSA).

נקודות קצה אזוריות מספקות יכולות של מיקום אחסון נתונים בהעברה, על ידי ניתוב התנועה והצגתה באותו אזור ב-Google Cloud שבו נמצא הלקוח. כשלקוח קורא לשירות באמצעות נקודת קצה אזורית, סשן ה-TLS של הלקוח מסתיים באזור שצוין בשם של נקודת הקצה. לכן, צריך להשתמש בנקודות קצה אזוריות רק לעומסי עבודה שאין להם תלויות מחוץ לאזור או לסמכות שיפוט אחת.

אתם יכולים להתחבר דרך האינטרנט לנקודות קצה אזוריות ציבוריות. לתעבורת נתונים נכנסת (ingress) מהאינטרנט, נקודות הקצה האלה משתמשות בניתוב לפי מאמץ מרבי כדי לשמור על תעבורת הנתונים במעבר מקומית לאזור (או לתחום השיפוט), כי הן לא משתמשות ב-Google Front End (GFE) הגלובלי. במקום זאת, הן מפוענחות לכתובות IP שמוכרזות רק בנקודות ה-peering הקרובות ביותר לאזור שנבחר.

לדוגמה, מהנדס מערכות מידע שעובד בערב הסעודית יכול להגדיר את הלקוח שלו לשימוש ב-BigQuery באזור me-central2 (דמאם) באמצעות נקודת הקצה האזורית של השירות bigquery.me-central2.rep.googleapis.com. התנועה מנותבת באמצעות Standard Tier, וסשן ה-TLS מהלקוח יסתיים ב-me-central2.

בתרחיש הזה, ה-VIP הציבורי שתואם לנקודת הקצה של השירות האזורי יגיע מקידומת IP ש-Google הכריזה עליה בנקודות ה-peering של האזור. לכן, אם המשתמש מחובר לספק אינטרנט מקומי בערב הסעודית, אפשר לנתב את התנועה בתוך תחום השיפוט שלו.

הפורמט של נקודת קצה אזורית

נקודות קצה אזוריות מופיעות בפורמט הבא:

SERVICE_NAME.REGION.rep.googleapis.com

הערכים הזמניים לשמירת מקום (placeholders) מוגדרים כך:

  • ‫SERVICE_NAME: שם של נקודת קצה של שירות נתמך, כמו bigquery.
  • ‫REGION: אזור נתמך של Google Cloud , למשל me-central2.

הדוגמה הבאה היא נקודת קצה אזורית מלאה של BigQuery:

bigquery.me-central2.rep.googleapis.com

אזורים ושירותים נתמכים

יש תמיכה בנקודות קצה אזוריות באזורים הבאים:

שם האזור מיקום
me-central2 דמאם, ערב הסעודית (KSA)

השירותים הבאים תומכים בנקודות קצה אזוריות:

שם השירות נקודת קצה אזורית
App Hub apphub.me-central2.rep.googleapis.com
Artifact Registry artifactregistry.me-central2.rep.googleapis.com
apt.me-central2.rep.pkg.dev
docker.me-central2.rep.pkg.dev
go.me-central2.rep.pkg.dev
googet.me-central2.rep.pkg.dev
kfp.me-central2.rep.pkg.dev
maven.me-central2.rep.pkg.dev
npm.me-central2.rep.pkg.dev
python.me-central2.rep.pkg.dev
yum.me-central2.rep.pkg.dev
BigQuery bigquery.me-central2.rep.googleapis.com
bigquerydatatransfer.me-central2.rep.googleapis.com
bigquerymigration.me-central2.rep.googleapis.com
bigqueryreservation.me-central2.rep.googleapis.com
bigquerystorage.me-central2.rep.googleapis.com
Bigtable bigtable.me-central2.rep.googleapis.com
Cloud Key Management Service ‏(Cloud KMS) cloudkms.me-central2.rep.googleapis.com
Cloud Logging logging.me-central2.rep.googleapis.com
Spanner spanner.me-central2.rep.googleapis.com
Cloud Storage storage.me-central2.rep.googleapis.com
Dataflow dataflow.me-central2.rep.googleapis.com
Managed Service for Apache Spark dataproc.me-central2.rep.googleapis.com
Pub/Sub pubsub.me-central2.rep.googleapis.com

הגדרת לקוח לגישה לנקודות קצה אזוריות מהאינטרנט הציבורי

כדי להשתמש בנקודות קצה אזוריות מהאינטרנט הציבורי, קודם צריך להגדיר את הלקוח (למשל Google Cloud CLI או ספריית לקוח של Google Cloud SDK) כך שיתחבר לנקודת קצה אזורית ספציפית.

הגדרת ה-CLI של gcloud

כברירת מחדל, ה-CLI של gcloud משתמש בנקודות קצה גלובליות של שירותים, כמו bigquery.googleapis.com. כדי להשתמש בנקודת קצה אזורית של שירות, צריך להגדיר את ה-CLI של gcloud כך שישתמש בהן. לשם כך, מבצעים את השלבים הבאים.

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

    gcloud services enable SERVICE_NAME

    מחליפים את SERVICE_NAME בשם של שירות נתמך שבו רוצים להשתמש. לדוגמה:

    gcloud services enable cloudkms
  2. כדי להשתמש בנקודת קצה של שירות אזורי, צריך להגדיר את ה-CLI של gcloud באמצעות הפקודה gcloud config set api_endpoint_overrides:

    gcloud config set api_endpoint_overrides/SERVICE_NAME REGIONAL_API_URL

    מחליפים את הערכים הבאים בערכים משלכם:

    • ‫SERVICE_NAME: השם של השירות הנתמך שבו רוצים להשתמש. לדוגמה: cloudkms
    • ‫REGIONAL_API_URL: כתובת ה-URL של נקודת הקצה הספציפית. לדוגמה:

      https://SERVICE_NAME.REGION_NAME.rep.googleapis.com/SERVICE_NAME/API_VERSION

      מחליפים את הערכים הבאים בערכים משלכם:

      • ‫REGION_NAME: השם של האזור הנדרש ב- Google Cloud . לדוגמה: me-central2
      • ‫API_VERSION: גרסת ה-API של השירות שבו רוצים להשתמש. לדוגמה: v1. הערה: יכול להיות שחלק מהשירותים לא ידרשו את הפרמטר הזה.

      ערך REGIONAL_API_URL לדוגמה:

      https://cloudkms.me-central2.rep.googleapis.com/cloudkms/v1

    הנה דוגמה לפקודת gcloud config set api_endpoint_overrides ב-Cloud KMS:

    gcloud config set api_endpoint_overrides/cloudkms https://cloudkms.me-central2.rep.googleapis.com/cloudkms/v1

עכשיו, אחרי שהגדרתם את ה-CLI של gcloud להשתמש בנקודת קצה אזורית של שירות, פקודות עתידיות ישתמשו בה כברירת מחדל במקום בנקודת הקצה הגלובלית של השירות.

הגדרת ספריות הלקוח של Google Cloud SDK

כברירת מחדל, ספריות הלקוח של Google Cloud SDK משתמשות בנקודות קצה גלובליות של שירותים, כמו pubsub.googleapis.com. כדי להשתמש בנקודת קצה אזורית של שירות, צריך להגדיר את ספריות הלקוח של Google Cloud SDK כך שישתמשו בהן.

Python

מגדירים את הפרמטר api_endpoint במחלקה ClientOptions של החבילה google-api-core:

from google.api_core.client_options import ClientOptions

options = ClientOptions(api_endpoint = "pubsub.me-central2.rep.googleapis.com")
client = pubsub_v1.PublisherClient(client_options=options)

// Alternatively
client = pubsub_v1.PublisherClient(client_options={"api_endpoint": "pubsub.me-central2.rep.googleapis.com")

Java

משתמשים ב-method‏ newBuilder של ה-class‏ ImageAnnotatorSettings בחבילה com.google.cloud.vision:

ImageAnnotatorSettings settings = ImageAnnotatorSettings.newBuilder()
  .setEndpoint("pubsub.me-central2.rep.googleapis.com")
  .build();
ImageAnnotatorClient client = ImageAnnotatorClient.create(settings);

המשך

משתמשים בפונקציה WithEndpoint בחבילה ClientOptions של החבילה api:

client, err := pubsub.NewClient(ctx, projID,
    option.WithEndpoint("pubsub.me-central2.rep.googleapis.com"), // Override endpoint

‎.NET

מגדירים את המאפיין Endpoint ב-class ClientBuilder של הלקוח בחבילה Google.Cloud של הספרייה שבה אתם משתמשים:

string region = "me-central2";
var client = new DatasetServiceClientBuilder
{
    Endpoint = $"pubsub.{region}.rep.googleapis.com"
}.Build();

הגבלת השימוש בנקודת קצה גלובלית ל-API

כדי לאכוף את השימוש בנקודות קצה אזוריות, אתם יכולים להשתמש באילוץ מדיניות הארגון constraints/gcp.restrictEndpointUsage כדי לחסום בקשות לנקודת הקצה הגלובלית של ה-API. מידע נוסף זמין במאמר הגבלת השימוש בנקודות קצה (endpoints).