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

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

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

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

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

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

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

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

SERVICE_NAME.REGION.rep.googleapis.com

הערכים של ה-placeholders מוגדרים כך:

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

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

bigquery.me-central2.rep.googleapis.com

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

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

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

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

שם השירות נקודת קצה אזורית
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 class של חבילת 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

משתמשים בשיטה newBuilder של הסיווג 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 במחלקה ClientBuilder של הלקוח בחבילה Google.Cloud של הספרייה שבה אתם משתמשים:

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

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

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