במדריך למתחילים הזה נסביר איך להגדיר שירות Media CDN לפני קטגוריה של Cloud Storage. אתם יכולים להשתמש בהגדרה הזו לבדיקות או כבסיס לסביבת ייצור.
לחצו על תראו לי איך כדי לקרוא הסבר מפורט על המשימה ישירות במסוף Google Cloud :
בדף הזה מפורטים התהליכים הבאים:
- יוצרים קטגוריה של Cloud Storage לאחסון התוכן.
- מפעילים את השירותים הנדרשים.
- יוצרים משאב
EdgeCacheOriginכדי לקשר את Media CDN לקטגוריה. - יוצרים משאב
EdgeCacheServiceכדי להגדיר ניתוב בקשות ושמירת תוכן במטמון בשרת המקור. - בודקים אם התגובה נשמרת במטמון.
לפני שמתחילים
חשוב לוודא שיש לכם את הפריטים הבאים:
גישה ל-Media CDN בפרויקט הנוכחי.
Google Cloud CLI מותקן. משתמשים בגרסה 345.0.0 ואילך.
אם צריך, משתמשים בפקודה
gcloud versionכדי לבדוק את הגרסה ובפקודהgcloud components updateכדי לעדכן את ה-CLI של gcloud שהותקן.ה-CLI של gcloud מספק את קבוצת פקודות המשנה
gcloud edge-cacheלניהול הגדרות חדשות וקיימות של Media CDN.ההרשאות לניהול זהויות והרשאות גישה (IAM) שנדרשות ליצירת משאבים ב-Media CDN.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לביצוע המשימות שמתוארות במסמך הזה, צריך לבקש מהאדמין להקצות את התפקידים הבאים:
-
roles/networkservices.edgeCacheAdmin: גישה ליצירה, לעדכון, למחיקה ולניהול של כל משאבי Edge Cache. -
roles/networkservices.edgeCacheUser: גישה לצפייה במשאבי Edge Cache ולשימוש בהם. -
roles/networkservices.edgeCacheViewer: גישת קריאה בלבד למשאבי Edge Cache.
כדי ליצור קטגוריית אחסון
- תפקיד אדמין באחסון
(
roles/storage.admin)
כדי להפעיל SSL ב-Media CDN
- תפקיד עורך ב-Certificate Manager (
roles/certificatemanager.editor)
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
יצירת קטגוריה של Cloud Storage
תוכן ב-Media CDN יכול להגיע ממיקומים כמו קטגוריה של Cloud Storage, מיקום אחסון של צד שלישי או מאזן עומסים.
במדריך למתחילים הזה, נאחסן תוכן בקטגוריה של Cloud Storage.
יוצרים קטגוריה של Cloud Storage עם גישה ציבורית ומקצים לה את השם
my-bucket.אם אתם לא רוצים שהקטגוריה שלכם ב-Cloud Storage תהיה נגישה לכולם, אתם צריכים לתת ל-Media CDN הרשאות גישה לקטגוריה. מידע נוסף זמין במאמר בנושא שימוש בדלי Cloud Storage פרטיים.
מעלים קובץ לקטגוריה.
הפעלת השירותים הנדרשים
כדי להגדיר ולפרוס שירותים של Media CDN, צריך להפעיל בפרויקט את Network Services API ואת Certificate Manager API.
המסוף
מפעילים את Network Services API.
מפעילים את Certificate Manager API.
gcloud
מפעילים את Network Services API:
gcloud services enable networkservices.googleapis.comמפעילים את Certificate Manager API:
gcloud services enable certificatemanager.googleapis.com
מידע נוסף על הפעלה והשבתה של שירותים זמין במאמר שימוש בשירות.
יצירת משאב EdgeCacheOrigin
יוצרים מקור שמפנה לקטגוריה של Cloud Storage.
המסוף
נכנסים לדף Media CDN במסוף Google Cloud .
לוחצים על הכרטיסייה מקורות.
לוחצים על יצירת מקור.
מזינים את השם של המקור כ-
cloud-storage-origin.אופציונלי: מזינים תיאור למקור.
בקטע כתובת המקור, בוחרים באפשרות בחירת קטגוריה של Google Cloud Storage, עוברים לקטגוריה של Cloud Storage בשם
my-bucketולוחצים על בחירה.אם יש לכם מקור חיצוני, בוחרים באפשרות ציון FQDN או כתובת IP ומזינים את ה-FQDN או את כתובת ה-IP.
לוחצים על יצירת מקור.
אחרי כ-10 דקות, משאב EdgeCacheOrigin שנוצר לאחרונה מופיע ברשימת המקורות בפרויקט בדף מקורות.
כדי לעדכן כתובת מוצא, לוחצים על המוצא ואז על עריכה.
gcloud
משתמשים בפקודה gcloud edge-cache origins create:
gcloud edge-cache origins create ORIGIN \
--origin-address="ADDRESS"
מחליפים את מה שכתוב בשדות הבאים:
-
ORIGIN: השם של המקור החדש -
ADDRESS: שם הקטגוריה,gs://my-bucket
אם יש לכם מקור חיצוני, מחליפים את ADDRESS ב-FQDN או בכתובת ה-IP.
כדי לראות את מקור התנועה החדש שנוצר, משתמשים בפקודה gcloud edge-cache origins list.
כדי לעדכן את כתובת המקור, משתמשים בפקודה gcloud edge-cache origins update.
API
משתמשים בשיטה edgeCacheOrigins.create:
POST https://networkservices.googleapis.com/v1/PARENT/edgeCacheOrigins?edgeCacheOriginId=ORIGIN_ID
{
"name": "ORIGIN_ID",
"originAddress: "ADDRESS"
}
מחליפים את מה שכתוב בשדות הבאים:
-
PARENT: משאב האב בפורמטprojects/PROJECT/locations/global -
ORIGIN_ID: השם המקוצר של המקור החדש
ADDRESS: שם הקטגוריה,gs://my-bucketאם יש לכם מקור חיצוני, מחליפים את
ADDRESSב-FQDN או בכתובת ה-IP.
כדי לראות את המקור החדש שנוצר, משתמשים בשיטה edgeCacheOrigins.list.
כדי לעדכן את כתובת המקור, משתמשים בשיטה edgeCacheOrigins.patch.
Terraform
יצירת משאב EdgeCacheService
משאב EdgeCacheService מגדיר את הגדרות הניתוב, האישורים והשמירה במטמון, ויכול להפנות למשאבי EdgeCacheOrigin.
יוצרים משאב EdgeCacheService בסיסי שמבצע את הפעולות הבאות:
- מטמון של כל התגובות מהמקור שהגדרנו למשך שעה
- מגדירה כותרת תגובה
x-cache-statusשמחזירה את סטטוס המטמון (למשלHITאוMISS)
אפשר גם לרשום שם דומיין לשירות הזה.
המסוף
נכנסים לדף Media CDN במסוף Google Cloud .
לוחצים על הכרטיסייה Services (שירותים).
לוחצים על יצירת שירות.
מזינים שם ייחודי לשירות – לדוגמה,
my-service– ולוחצים על הבא.בקטע ניתוב, לוחצים על הוספת כלל מארח ומזינים שם דומיין של מארח אחד או יותר.
בשביל Hosts, מזינים שם דומיין של מארח – לדוגמה,
web.example.com.לוחצים על הוספת כלל ניתוב.
- בשדה עדיפות, מציינים את הערך
1. - לוחצים על הוספת תנאי התאמה, בשדה התאמה לנתיב מציינים את
/ואז לוחצים על סיום. - בוחרים באפשרות אחזור מ-Origin, ואז בוחרים את ה-Origin שהגדרתם.
- לוחצים על פעולות של תוספים.
- בקטע פעולה בכותרת, לוחצים על הוספת פריט. לאחר מכן, מבצעים את הפעולות הבאות:
- בקטע סוג, בוחרים באפשרות כותרות תגובה להוספה.
- לוחצים על הוספת כותרת.
- בשדה Name (שם), מציינים
x-cache-status, ובשדה Value (ערך), מציינים{cdn_cache_status}. - לוחצים על סיום.
- בקטע פעולת נתיב, לוחצים על הוספת פריט. לאחר מכן, מבצעים את הפעולות הבאות:
- בשדה Type (סוג), בוחרים באפשרות CDN policy (מדיניות CDN).
- בקטע מצב מטמון, בוחרים באפשרות FORCE_CACHE_ALL.
- לוחצים על סיום.
- לוחצים על Save.
- בשדה עדיפות, מציינים את הערך
לוחצים על יצירת שירות.
משאב EdgeCacheService שנוצר מופיע בדף Services ברשימת השירותים בפרויקט.
gcloud
ב-Cloud Shell, משתמשים בעורך טקסט כדי ליצור קובץ מקומי בשם
my-service.yaml.קובץ כזה מציין את הפרטים הבאים:
- איך הניתוב פועל – קודם מתבצעת התאמה של המארח ואז של הנתיב
- איך פועל המטמון – על סמך מצב המטמון וערך ה-TTL
- איך הבקשות והתשובות משתנות – לדוגמה, על ידי הוספת המשתנה
cdn_cache_statusלכותרת של תשובה
מדביקים את תוכן הדוגמה הבא בקובץ ושומרים אותו:
name: SERVICE routing: hostRules: - hosts: - DOMAIN pathMatcher: routes pathMatchers: - name: routes routeRules: - priority: 1 matchRules: - prefixMatch: / origin: ORIGIN routeAction: cdnPolicy: cacheMode: CACHE_ALL_STATIC defaultTtl: 3600s headerAction: responseHeadersToAdd: - headerName: "x-cache-status" headerValue: "{cdn_cache_status}"מחליפים את מה שכתוב בשדות הבאים:
-
SERVICE: שם השירות
DOMAIN: הדומיין של השירות החדשאם מציינים את שם הדומיין, Media CDN מגיב עם שגיאה
404עבור מארחים אחרים.
ORIGIN: השם של המקור הקשור
-
משתמשים בפקודה
gcloud edge-cache services importעם קובץ ה-YAML:gcloud edge-cache services import SERVICE \ --source=my-service.yamlכדי לראות את השירות החדש שנוצר ברשימת המשאבים
EdgeCacheServiceבפרויקט, משתמשים בפקודהgcloud edge-cache services list.
API
משתמשים בשיטה edgeCacheServices.create:
POST https://networkservices.googleapis.com/v1/PARENT/edgeCacheServices?edgeCacheServiceId=SERVICE_NAME
{
"name": "SERVICE_NAME",
"routing": {
"hostRules": [
{
"hosts": ["DOMAIN"],
"pathMatcher": "routes"
}
],
"pathMatchers": [
{
"name": "routes",
"routeRules": [
{
"priority": "1",
"matchRules": [
{
"prefixMatch": "/"
}
],
"origin": "ORIGIN",
"routeAction": {
"cdnPolicy": {
"cacheMode": "CACHE_ALL_STATIC",
"defaultTtl": "3600s"
}
}
"headerAction": {
"responseHeadersToAdd": [
{
"headerName": "x-cache-status",
"headerValue": "{cdn_cache_status}"
}
]
},
}
]
}
]
}
}
מחליפים את מה שכתוב בשדות הבאים:
-
PARENT: משאב האב בפורמטprojects/PROJECT/locations/global SERVICE_NAME: שם השירות
DOMAIN: הדומיין של השירות החדשאם מציינים את שם הדומיין, Media CDN מגיב עם שגיאה
404עבור מארחים אחרים.
ORIGIN_NAME: השם של המקור הקשור
כדי לראות את השירות החדש שנוצר ברשימת המשאבים EdgeCacheService בפרויקט, משתמשים בשיטה edgeCacheServices.list.
Terraform
יכול להיות שיעברו כמה דקות עד שהשירות הראשון ייווצר. Media CDN מקצה כתובות IP ייעודיות ומעביר את ההגדרה שלכם לאלפי מיקומי קצה. עדכונים עתידיים בשירות, כמו שינוי של הגדרות מסלול או פרמטרים של התאמה, יהיו מהירים יותר.
אחזור כתובות ה-IP
כדי לראות את כתובות ה-IP של השירות החדש שיצרתם, פועלים לפי השלבים הבאים:
המסוף
נכנסים לדף Media CDN במסוף Google Cloud .
לוחצים על הכרטיסייה Services (שירותים).
כתובות ה-IP של השירות מופיעות בתא Addresses.
אם התא ריק, מרעננים את הדפדפן.
gcloud
משתמשים בפקודה gcloud edge-cache services describe:
gcloud edge-cache services describe SERVICE
מחליפים את SERVICE בשם השירות.
בפלט מוצגות כתובות ה-IP שהוקצו לשירות שלכם:
ipv4Addresses:
IPV4_ADDRESS
ipv6Addresses:
IPV6_ADDRESS
name: projects/my-project/locations/global/edgeCacheServices/SERVICE
...
API
משתמשים בשיטה edgeCacheServices.get:
GET https://networkservices.googleapis.com/v1/SERVICE_NAME
מחליפים את SERVICE_NAME בשם המלא של השירות. צריך להשתמש בפורמט הבא:
projects/PROJECT/locations/global/edgeCacheServices/SERVICE_NAME
מחליפים את SERVICE_NAME בשם המקוצר של השירות.
הפרטים שמאוחזרים כוללים את כתובות ה-IP שהוקצו לשירות:
ipv4Addresses:
IPV4_ADDRESS
ipv6Addresses:
IPV6_ADDRESS
בדיקה אם התגובה נשמרת במטמון
לפני שבודקים את השירות, צריך לוודא שיש לכם תוכן שאפשר לשמור במטמון במקור, כדי ש-Media CDN יוכל לאחזר אותו.
כדי לבדוק שהשירות מוגדר בצורה נכונה לשמירת תוכן במטמון, אפשר להשתמש בכלי curl של שורת הפקודה כדי לשלוח בקשות ולבדוק את התגובות. curl
זמין גם ב-Cloud Shell במסוף Google Cloud .
אם רוצים להשתמש ב-EdgeCacheService עם הדומיין, אפשר להקצות את כתובת ה-IP של EdgeCacheService לרשומת דומיין. הוראות מפורטות זמינות במאמר הגדרת הדומיין באמצעות Cloud DNS.
אחרי שמגדירים את הדומיין, ניגשים לתוכן באמצעות הפקודה הבאה: curl
curl -svo /dev/null "http://DOMAIN_NAME/FILENAME"
אם לא הגדרתם את ה-DNS כך שיצביע על כתובות ה-IP שהוקצו לכם, תוכלו להשתמש באפשרות resolve כדי לשנות את הכתובת שבה נעשה שימוש ב-curl.
curl -svo /dev/null --resolve DOMAIN_NAME:80:IP_ADDRESS "http://DOMAIN_NAME/FILENAME"
מחליפים את מה שכתוב בשדות הבאים:
-
DOMAIN_NAME: דומיין המארח שציינתם כשיצרתם את השירות -
IP_ADDRESS: כתובת ה-IP של השירות כפי שהיא מופיעה בעמודה כתובות ברשימת השירותים -
FILENAME: השם של הקובץ שהעליתם לקטגוריה
דוגמה:
curl -svo /dev/null --resolve web.example.com:80:34.104.37.129 "http://web.example.com/file.mp4"
הפלט הראשוני של הפקודה דומה לזה שמופיע בהמשך, עם הסטטוס miss, כי Media CDN לא אחזר כבר את הנתונים המבוקשים מהמקור:
< HTTP/2 200 OK
...
< x-cache-status: den;miss
...
כששולחים את אותה בקשה שוב ושוב, מתקבל פלט שדומה לזה שבהמשך, עם הסטטוס hit:
< HTTP/2 200 OK
...
< x-cache-status: den;hit
...
אם הסטטוס hit לא מופיע, כדאי לבדוק את הדברים הבאים:
- אפשר לשמור את התשובה במטמון.
- מצב מטמון שהוגדר מאפשר שמירת תוכן במטמון.
- המקור לא מגדיר הנחיות לגבי מטמון שמונעות שמירה במטמון. מידע נוסף זמין במאמר הגדרת מטמון.
בדקתם עכשיו משאב בסיסי של EdgeCacheService שיכול להציג תוכן ברחבי העולם. יכול להיות ששירות ברמת ייצור יצטרך אישורי SSL (TLS), כמה מקורות וכללי מדיניות אבטחה של Google Cloud Armor.
אופציונלי: ניקוי
מוחקים את כל המשאבים שלא מתכוונים להשתמש בהם שוב.
המסוף
נכנסים לדף Media CDN במסוף Google Cloud .
לוחצים על הכרטיסייה Services (שירותים).
בוחרים את השירות ולוחצים על מחיקה.
לוחצים על הכרטיסייה מקורות.
בוחרים את המקור ולוחצים על מחיקה.
gcloud
כדי לראות את רשימת המשאבים שיצרתם, משתמשים בפקודה
gcloud edge-cache origins listובפקודהgcloud edge-cache services list.כדי למחוק את השירות, משתמשים בפקודה
gcloud edge-cache services delete:gcloud edge-cache services delete SERVICEמחליפים את
SERVICEבשם השירות.כדי למחוק את המקור, משתמשים בפקודה
gcloud edge-cache origins delete:gcloud edge-cache origins delete ORIGINמחליפים את
ORIGINבשם של נקודת המוצא.
API
כדי להציג רשימה של המשאבים שיצרתם, משתמשים ב-method
edgeCacheServices.listוב-method edgeCacheOrigins.list.כדי למחוק את השירות, משתמשים ב-method
edgeCacheServices.delete:DELETE https://networkservices.googleapis.com/v1/SERVICE_NAMEמחליפים את
SERVICE_NAMEבשם המלא של השירות. צריך להשתמש בפורמט הבא:projects/PROJECT/locations/global/edgeCacheServices/SERVICE_NAME
מחליפים את
SERVICE_NAMEבשם המקוצר של השירות.כדי למחוק את המקור, משתמשים בשיטת
edgeCacheOrigins.delete:DELETE https://networkservices.googleapis.com/v1/ORIGINמחליפים את
ORIGINבשם המלא של המקור. צריך להשתמש בפורמט הבא:projects/PROJECT/locations/global/edgeCacheOrigins/ORIGIN_ID
מחליפים את
ORIGIN_IDבשם המקוצר של המקור.
חוזרים על התהליך הזה לגבי כל משאב אחר שיצרתם ושאתם לא מתכוונים להשתמש בו שוב, כמו קטגוריה של Cloud Storage.
המאמרים הבאים
- הנפקת אישור SSL (TLS) וצירופו אל
EdgeCacheService. - הצגת יומני בקשות באמצעות Cloud Logging.
- הגדרת בקשות חתומות כדי להגן על התוכן.
- אופטימיזציה של מפתחות מטמון וערכי TTL כדי לשפר את שיעורי הפגיעה במטמון.
- הגדרת התאמה מתקדמת של נתיבים ויצירת מקורות נוספים.