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

אתם יכולים להגדיר דומיין מותאם אישית במקום כתובת ברירת המחדל ש-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.

מיפוי דומיין מותאם אישית באמצעות אירוח ב-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 Hosting

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

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

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

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

  • מיפויי דומיינים ב-Cloud Run נמצאים בשלב הגרסה המקדימה. בגלל בעיות של זמן אחזור, הם לא מוכנים לייצור ולא נתמכים בזמינות לכלל המשתמשים (GA). בשלב הזה, לא מומלץ להשתמש באפשרות הזו בשירותי ייצור.
  • כשממפים שירות לדומיין בהתאמה אישית, מונפק באופן אוטומטי אישור שמנוהל על ידי Google לחיבורי HTTPS, והוא מתחדש באופן אוטומטי.
  • הקצאת אישור ה-SSL בדרך כלל נמשכת כ-15 דקות, אבל היא יכולה להימשך עד 24 שעות.
  • אי אפשר להשבית את TLS 1.0 ו-1.1. אם זה בעייתי, אפשר להשתמש ב-Firebase Hosting או ב-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.
  • אי אפשר להשתמש בתכונה הזו עם אישורים עם תווים כלליים לחיפוש.

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

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

המסוף

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

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

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

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

  4. בוחרים באפשרות Cloud Run Domain Mappings (מיפויי דומיינים של Cloud Run).

  5. בטופס Add mapping (הוספת מיפוי), בוחרים באפשרות Verify a new domain (אימות דומיין חדש).

  6. בשדה דומיין בסיסי לאימות, צריך לאמת את הבעלות על הדומיין לפני שתוכלו להשתמש בו, אלא אם רכשתם את הדומיין מ-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.

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, תוכלו לעיין במאמר בנושא הוספת רשומה.

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

    המסוף

    1. עוברים לדף מיפויי הדומיינים ב-Cloud Run:
      דף מיפויי הדומיינים

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

    בוחרים באפשרות DNS records (רשומות 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 בחשבון של הדומיין. ברוב המקרים, השינויים האלה נכנסים לתוקף תוך כמה דקות, אבל במקרים מסוימים יכול להיות שיחלפו כמה שעות, בהתאם לרשם ולזמן החיים (TTL) של רשומות DNS קודמות בדומיין. אפשר להשתמש בכלי dig, כמו הגרסה אונליין של dig, כדי לוודא שרשומות ה-DNS עודכנו בהצלחה.

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

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

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

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

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

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

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

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

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

    כניסה לדף Service Accounts

מחיקה של מיפוי דומיין ב-Cloud Run

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

המסוף

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

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

gcloud

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

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

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

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

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

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

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