מיפוי של דומיינים מותאמים אישית

אתם יכולים להגדיר דומיין בהתאמה אישית במקום כתובת ברירת המחדל ש-Cloud Run מספק לשירות שנפרס.

יש כמה דרכים להגדיר דומיין מותאם אישית לשירות ב-Cloud Run:

אתם יכולים למפות כמה דומיינים מותאמים אישית לאותו שירות Cloud Run.

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

קונים דומיין חדש, אלא אם כבר יש לכם דומיין שאתם רוצים להשתמש בו. אפשר להשתמש בכל רשם שמות דומיינים.

מיפוי דומיין מותאם אישית באמצעות מאזן עומסים גלובלי-חיצוני של אפליקציות (ALB)

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

אחד היתרונות של שימוש במאזן עומסים גלובלי חיצוני של אפליקציות (ALB) הוא שהוא נותן לכם שליטה רבה על הגדרת הדומיין המותאם אישית. לדוגמה, אתם יכולים להשתמש באישור TLS משלכם או לנתב נתיבי כתובות ה-URL ספציפיים לשירות Cloud Run. הוא גם מאפשר להגדיר את Cloud CDN לשמירה במטמון ואת Google Cloud Armor לאבטחה נוספת.

אתם יכולים גם למפות כמה שירותים לשם מארח דינמי או לנתיב בתבנית של כתובת ה-URL של הדומיין המותאם אישית, למאזן עומסים יחיד, לדוגמה <service>.example.com, באמצעות מסכות של כתובות URL.

אפשר לעיין במסמכי התיעוד בנושא הגדרת מאזן עומסים גלובלי חיצוני של אפליקציות (ALB) באמצעות Cloud Run.

מיפוי דומיין מותאם אישית באמצעות מיפוי דומיינים ב-Cloud Run (זמינות מוגבלת וגרסת טרום-השקה)

המגבלות של מיפוי דומיינים ב-Cloud Run

השיקולים הבאים רלוונטיים למיפוי דומיינים ב-Cloud Run:

  • מיפויי הדומיינים של Cloud Run נמצאים בשלב ההשקה של גרסת טרום-השקה (Preview). בגלל בעיות זמן אחזור, הם לא מוכנים לייצור ואין להם תמיכה בזמינות לכלל המשתמשים (GA). כרגע, האפשרות הזו לא מומלצת לשירותי ייצור.
  • כשממפים שירות לדומיין מותאם אישית, המערכת מנפיקה ומחדשת באופן אוטומטי אישור בניהול Google לחיבורי HTTPS.
  • הקצאת אישור ה-SSL נמשכת בדרך כלל כ-15 דקות, אבל יכולה להימשך עד 24 שעות.
  • אי אפשר להשבית את TLS 1.0 ו-1.1. אם זו בעיה, אתם יכולים להשתמש באירוח ב-Firebase או ב-Cloud Load Balancing כדי לאפשר תנועה רק ב-TLS 1.2.
  • אתם לא יכולים להעלות ולהשתמש באישורים משלכם (בניהול עצמי).
  • מיפויי הדומיינים של Cloud Run מוגבלים ל-64 תווים.
  • מיפוי דומיינים זמין באזורים הבאים:
    • asia-east1
    • asia-northeast1
    • asia-southeast1
    • europe-north1
    • europe-west1
    • europe-west4
    • us-central1
    • us-east1
    • us-east4
    • us-west1
  • כדי למפות דומיינים מותאמים אישית באזורים אחרים, צריך להשתמש באחת מאפשרויות המיפוי האחרות.
  • כשמשתמשים במיפוי דומיינים ב-Cloud Run, ממפים דומיין מותאם אישית לשירות ואז מעדכנים את רשומות ה-DNS.
  • אפשר למפות דומיין, כמו example.com, או תת-דומיין, כמו subdomain.example.com.
  • אפשר למפות דומיין רק ל-/, ולא לנתיב כתובת ה-URL ספציפי כמו /users.
  • אי אפשר להשתמש בתעודות wildcard עם התכונה הזו.

מיפוי דומיין מותאם אישית לשירות

כדי למפות דומיין מותאם אישית לשירות, אתם יכולים להשתמש במסוף Google Cloud , ב-CLI של gcloud או ב-Terraform.

המסוף

  1. פותחים את הדף Domain mappings במסוף Google Cloud :
    לדף Domain mappings

  2. לוחצים על הוספת מיפוי.

    אם חלון התצוגה קטן מדי, הלחצן Add Mapping לא מוצג וצריך ללחוץ על סמל האפשרויות הנוספות (3 נקודות) בפינת הדף.

    לחלופין, לוחצים על Add custom URL וקוראים את המאמר יצירת כתובות URL בהתאמה אישית כדי להגדיר את ההגדרה הזו.

  3. ברשימה הנפתחת, בוחרים את השירות שאליו ממפים את הדומיין המותאם אישית.

  4. בוחרים באפשרות Cloud Run Domain Mappings.

  5. בטופס Add mapping, בוחרים באפשרות Verify a new domain.

  6. בשדה Base domain to verify, צריך לאמת את הבעלות על הדומיין לפני שמשתמשים בו, אלא אם רכשתם את הדומיין מ-Google.

    כדי למפות את subdomain.example.com או את subdomain1.subdomain2.example.com, צריך לאמת את הבעלות על example.com. מידע נוסף על אימות בעלות על דומיין זמין במרכז העזרה של Search Console.

  7. לוחצים על Continue.

  8. אחרי שאימות הדומיין מסתיים, לוחצים על המשך האימות וסגירה.

  9. מעדכנים את רשומות ה-DNS באתר של רשם הדומיינים באמצעות רשומות ה-DNS שמוצגות בשלב האחרון. כדי להציג את הרשומות, לוחצים על רשומות DNS בתפריט הפעולות "…" של מיפוי הדומיין.

  10. לוחצים על סיום.

gcloud

  1. בפעם הראשונה שמשתמשים בדומיין בפרויקט ב- Google Cloud , צריך לאמת את הבעלות על הדומיין, אלא אם רכשתם את הדומיין המותאם אישית מ-Google. כדי לבדוק אם הדומיין המותאם אישית שבו אתם רוצים להשתמש אומת, אתם יכולים להריץ את הפקודה הבאה:

    gcloud domains list-user-verified

    אם צריך לאמת את הבעלות על הדומיין, פותחים את דף האימות של Search Console:

    gcloud domains verify BASE-DOMAIN

    כאשר BASE-DOMAIN הוא דומיין הבסיס שרוצים לאמת. לדוגמה, אם רוצים למפות את subdomain.example.com, צריך לאמת את הבעלות על example.com.

    ב-Search Console, משלימים את אימות הבעלות על הדומיין. מידע נוסף זמין במרכז העזרה של Search Console.

  2. ממפים את השירות לדומיין המותאם אישית:

    • כדי למפות דומיין לשירות קיים:

      gcloud beta run domain-mappings create --service SERVICE --domain DOMAIN
      • מחליפים את SERVICE בשם השירות.
      • מחליפים את DOMAIN בדומיין המותאם אישית, לדוגמה, example.com או subdomain.example.com.
    • כדי למפות דומיין ישירות כשפורסים שירות:

      gcloud beta run deploy SERVICE --image IMAGE --domain DOMAIN
      • מחליפים את SERVICE בשם השירות.
      • מחליפים את IMAGE בקובץ האימג' של הקונטיינר.
      • מחליפים את DOMAIN בדומיין המותאם אישית.

Terraform

כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.

כדי ליצור שירות Cloud Run, מוסיפים את הקוד הבא לקובץ main.tf הקיים:

resource "google_cloud_run_v2_service" "default" {
  name     = "custom-domain" # Replace with your service name
  location = "us-central1"

  deletion_protection = false # set to true to prevent destruction of the resource

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello" # Replace with your container image
    }
  }
}

מחליפים את:

  • ‫custom-domain בשם של שירות Cloud Run.
  • us-docker.pkg.dev/cloudrun/container/hello בהפניה לקובץ האימג' של הקונטיינר. אם אתם משתמשים ב-Artifact Registry, המאגר REPO_NAME כבר צריך להיות קיים. כתובת ה-URL היא בפורמט LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.

ממפים את שירות Cloud Run לדומיין המותאם אישית:

data "google_project" "project" {}

resource "google_cloud_run_domain_mapping" "default" {
  name     = "verified-domain.com"
  location = google_cloud_run_v2_service.default.location
  metadata {
    namespace = data.google_project.project.project_id
  }
  spec {
    route_name = google_cloud_run_v2_service.default.name
  }
}

מחליפים את verified-domain.com בדומיין המאומת בהתאמה אישית, לדוגמה, example.com או subdomain.example.com.

הוספה של רשומות ה-DNS אצל רשם הדומיינים

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

אם אתם משתמשים ב-Cloud DNS כספק ה-DNS, קראו את המאמר הוספת רשומה.

אם אתם משתמשים ברשומות DNS של הרשאה ברשות האישורים (CAA) לדומיין המותאם אישית, אתם צריכים לתת הרשאה גם ל-pki.goog וגם ל-letsencrypt.org כדי ש-Cloud Run יוכל להנפיק ולחדש את אישור ה-TLS המנוהל. מידע נוסף מופיע במאמר ציון רשויות האישורים שיכולות להנפיק את האישור בניהול Google.

  1. כדי לאחזר את פרטי רשומת ה-DNS של מיפויי הדומיינים, משתמשים באחת מהאפשרויות הבאות:

    המסוף

    1. נכנסים לדף מיפויי הדומיינים של Cloud Run:
      דף מיפויי הדומיינים

    2. לוחצים על סמל האפשרויות הנוספות (3 נקודות) שמשמאל לשירות, ואז לוחצים על DNS RECORDS (רשומות DNS) כדי להציג את כל רשומות ה-DNS:

    בחירת רשומות DNS

    gcloud

    gcloud beta run domain-mappings describe --domain [DOMAIN]

    מחליפים את [DOMAIN] בדומיין המותאם אישית, לדוגמה, example.com או subdomain.example.com.

    צריך את כל הרשומות שמוחזרות בכותרת resourceRecords.

  2. נכנסים לחשבון ברשם הדומיינים ופותחים את דף הגדרות ה-DNS.

  3. מאתרים את הקטע של רשומות המארח בדף ההגדרות של הדומיין, ומוסיפים כל אחת מרשומות המשאבים שקיבלתם כשמיפיתם את הדומיין לשירות Cloud Run.

  4. כשמוסיפים כל אחת מרשומות ה-DNS הקודמות לחשבון אצל ספק ה-DNS:

    • בוחרים את הסוג שהוחזר ברשומת ה-DNS בשלב הקודם: A,‏ AAAA או CNAME.
    • צריך להשתמש בשם www כדי למפות אל www.example.com.
    • צריך להשתמש בשם @ כדי למפות את example.com.
  5. שומרים את השינויים בדף הגדרות ה-DNS של החשבון בדומיין. ברוב המקרים, השינויים האלה נכנסים לתוקף תוך כמה דקות, אבל במקרים מסוימים זה יכול לקחת כמה שעות, בהתאם לרשם ולערך Time-To-Live (TTL)‎ של רשומות ה-DNS הקודמות של הדומיין. אתם יכולים להשתמש בכלי dig, כמו הגרסה אונליין של dig, כדי לוודא שרשומות ה-DNS עודכנו בהצלחה.

  6. כדי לבדוק אם הפעולה הצליחה, נכנסים לשירות בכתובת ה-URL החדשה שלו, לדוגמה https://www.example.com. יכול להיות שיעברו כמה דקות עד שיונפק אישור ה-SSL המנוהל.

הוספת בעלי דומיינים מאומתים למשתמשים אחרים או לחשבונות שירות

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

אם אתם צריכים להוסיף בעלים מאומתים של הדומיין למשתמשים אחרים או לחשבונות שירות, אתם יכולים להוסיף הרשאה דרך הדף Search Console:

  1. עוברים לכתובת הבאה בדפדפן האינטרנט:

    https://search.google.com/search-console/welcome

  2. בקטע Properties, לוחצים על הדומיין שאליו רוצים להוסיף משתמש או חשבון שירות.

  3. עוברים לרשימה בעלים מאומתים, לוחצים על הוספת בעלים ומזינים כתובת האימייל בחשבון Google או מזהה חשבון שירות.

    כדי לראות את רשימת חשבונות השירות, פותחים את הדף Service Accounts במסוף Google Cloud :

    לדף Service Accounts

מחיקת מיפוי דומיין ב-Cloud Run

אתם יכולים להשתמש במסוף Google Cloud או ב-CLI של gcloud כדי למחוק מיפוי דומיינים.

המסוף

  1. פותחים את הדף Domain mappings במסוף Google Cloud :
    הדף Domain mappings

  2. בדף Domain mappings, בוחרים את מיפוי הדומיינים שרוצים למחוק ולוחצים על Delete.

gcloud

  1. מוחקים את מיפוי הדומיין:

    gcloud beta run domain-mappings delete --domain DOMAIN
    • מחליפים את DOMAIN בדומיין המותאם אישית, לדוגמה, example.com או subdomain.example.com.

מיפוי דומיין מותאם אישית באמצעות אירוח ב-Firebase

באפשרות הזו, מגדירים את אירוח ב-Firebase לפני שירות Cloud Run ומקשרים דומיין לאירוח ב-Firebase.

השימוש באירוח ב-Firebase הוא זול, ואפשר לארח ולהציג תוכן סטטי לצד התוכן הדינמי שמוצג על ידי שירות Cloud Run.

כדי למפות דומיין מותאם אישית באמצעות אירוח ב-Firebase:

  1. מוסיפים את Firebase לפרויקט Google Cloud .
  2. מתקינים את Firebase CLI.
  3. בתיקייה שונה מקוד המקור של השירות, יוצרים קובץ firebase.json עם התוכן הבא:

      {
        "hosting": {
          "rewrites": [{
            "source": "**",
            "run": {
              "serviceId": "SERVICE_NAME",
              "region": "REGION"
            }
          }]
        }
      }
    

    מחליפים את SERVICE_NAME ואת REGION בשם ובאזור של שירות Cloud Run.

  4. פורסים את ההגדרות של אירוח ב-Firebase:

    firebase deploy --only hosting --project PROJECT_ID
  5. חיבור דומיין מותאם אישית לאירוח ב-Firebase.

מידע נוסף על אירוח ב-Firebase ו-Cloud Run

שימוש בדומיינים מותאמים אישית עם שירותים מאומתים

שירותים מאומתים מוגנים על ידי IAM. בשירותי Cloud Run כאלה נדרש אימות לקוח שמצהיר על הנמען המיועד של הבקשה בזמן יצירת פרטי הכניסה (קהל היעד).

הקהל הוא בדרך כלל כתובת ה-URL המלאה של שירות היעד. כברירת מחדל, בשירותי Cloud Run זו כתובת URL שנוצרת ומסתיימת ב-run.app.

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

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