ביטול תוקף של תוכן שנשמר במטמון

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

‫Media CDN תומך בכמה דרכים לבחירת תוכן לביטול תוקף, כמו שמתואר בהמשך:

  • מארח ונתיב כתובת ה-URL
  • קידומת של כתובת URL (תו כללי)
  • תגי מטמון, כולל תגים מובנים של status,‏ origin ו-content-type

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

תחביר פסילה נתמך

התחביר הנתמך לביטול תוקף הוא:

סוג תחביר דוגמה
ביטול תוקף של מארח ביטול תוקף של תגובות שנשמרו במטמון עבור המארח שצוין. gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --host="media.example.com"
ביטול תוקף של נתיב ביטול התוקף של תגובות ששמורות במטמון עבור הנתיב או קידומת הנתיב שצוינו. gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --path="/content/1234/hls/*"

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --path="/videos/funny.mp4"
ביטול תוקף של תג מטמון לפי קוד סטטוס של HTTP, שם מקור או סוג MIME פסילת תשובות שמורות במטמון עם תג תואם. המערכת מתייחסת לכמה תגים כאל ערך בוליאני OR. gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --tags="status=404,origin=staging-origin"

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --tags="content-type=application/x-mpegurl"

הערות:

  • אפשר לציין עד 10 תגי מטמון בבקשת ביטול תוקף אחת.
  • אפשר לשלב בין host, path ו-tags בבקשת פסילה אחת. הן נחשבות כערך בוליאני AND.
  • אם מציינים כמה תגי מטמון, המערכת מתייחסת אליהם כאל ערך בוליאני OR. לדוגמה, אם מציינים --tags="status=404,origin=staging-origin", כל התגובות עם תג מטמון של status=404 יבוטלו, וגם כל התגובות עם תג מטמון של origin=staging-origin.

תגי מטמון

תגי מטמון (או מפתחות חלופיים) מאפשרים לכם לבטל תוכן על סמך מטא-נתונים שרירותיים.

התגים האלה מוגדרים על ידי:

  • הגדרת כותרת HTTP‏ Cache-Tag בתגובה של מקור, עם תגים שמוגדרים כרשימת ערכים מופרדת בפסיקים.
  • תגים מובנים שמבוססים על קוד הסטטוס של ה-HTTP בתגובת HTTP, על סוג ה-MIME מכותרת תגובה של ה-HTTP‏ Content-Type או על שם המקור שממנו נשלפה התגובה.

אם מציינים כמה תגים בבקשת ביטול תוקף אחת, המערכת מתייחסת אליהם כאל ערך בוליאני OR.

דוגמה:

  • יש לך את האובייקטים הבאים במטמון:

    • אובייקט מספר 1 שנשמר במטמון עם התגים status=200, content-type=video/mp4
    • אובייקט מספר 2 שנשמר במטמון עם התגים status=404, content-type=text/plain
    • אובייקט מספר 3 שנשמר במטמון עם התגים status=200, content-type=application/x-mpegurl
  • אתם שולחים בקשה לביטול תוקף של אובייקטים עם tags="status=200,content-type=text/plain"

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

הערות:

  • תגי ברירת המחדל של מטמון לא נכללים בתגובה שמוצגת ללקוח כי הם משקפים כותרות קיימות (כמו שורת הסטטוס או Content-Type) או פרטי הגדרה פנימיים.
  • תגי מטמון שנשלחים מהמקור בכותרת תגובת HTTP‏ Cache-Tag נשלחים ללקוח. כדי למנוע את השליחה שלהם ללקוח, אפשר להשתמש בתכונה responseHeadersToRemove ב-routeRule כדי להסיר את הכותרת Cache-Tag. דוגמאות אפשר למצוא במאמר בנושא כותרות בהתאמה אישית.

תגים מובנים

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

תג פרטים
status=HTTP_STATUS_CODE

תג המטמון status מוגדר על סמך קוד הסטטוס של HTTP שהוחזר בתגובה שנשמרה במטמון.

לדוגמה, אפשר לבטל את התוקף של כל תגובות HTTP 404 שנשמרו במטמון על ידי ציון status=404 בבקשה לביטול התוקף.

content-type=MIME_TYPE

תג המטמון content-type מוגדר על סמך סוג ה-MIME שמוגדר בכותרת התגובה של ה-HTTP Content-Type.

לדוגמה, סוג ה-MIME של פלייליסט HLS הוא application/x-mpegURL או vnd.apple.mpegURL.

כך תוכלו לבטל תוקף של סוגים ספציפיים של תוכן.

origin=ORIGIN_NAME

תג ה-cache‏ origin מוגדר על סמך שם המקור שממנו נמשך התוכן.

הערך origin מפנה לערך של .routing.routeRules[].origin, ומאפשר לכם לבטל תוכן משרת מקור שההגדרה שלו שגויה או שהוא מתנהג בצורה לא תקינה.

מגבלות על תגי מטמון

ההגבלות הבאות חלות על תגי מטמון:

  • הגודל המקסימלי הוא 120 בייט לכל תג
  • הגודל הכולל של שמות התגים לא יכול לחרוג מ-4 KiB ‏ (4,096 בייט) לכל אובייקט שנשמר במטמון
  • אסור להוסיף יותר מ-50 תגים לכל אובייקט, לא כולל תגי ברירת מחדל שנוספים על ידי Media CDN
  • חייב להיות שם אסימון HTTP תקין, כפי שמוגדר בסעיף 3.2.6 של HTTP RFC 7230
  • המאפיין לא יכול לכלול את הקידומות המובנות status=, ‏origin= או content-type= (המערכת מתעלמת מהן).

המערכת מתעלמת מתגים שלא עומדים במגבלות האלה או בדרישות האלה. במקרים מסוימים (למשל, כשהכותרות של התגובה גדולות מדי), התגובה נכשלת ולא נשמרת במטמון.

הרשאות

ההרשאה networkservices.EdgeCacheServices.invalidateCache שולטת בגישה ל-invalidateCache API. ההרשאה הזו כלולה בתפקידים networkservices.edgeCacheAdmin ו-networkservices.edgeCacheUser בניהול זהויות והרשאות גישה (IAM).

דוגמאות

בדוגמאות הבאות אפשר לראות איך לבטל תוקף של תגובות ששמורות במטמון בשירות Media CDN.

אפשר לשלב את השדות host,‏ path ו-tags בבקשת פסילה אחת כדי לפסול קבוצה מסוימת של תוכן.

ניקוי המטמון לפי מארח

המסוף

  1. נכנסים לדף Media CDN במסוף Google Cloud .

    מעבר אל Media CDN

  2. לוחצים על הכרטיסייה Services (שירותים).
  3. לוחצים על שירות.
  4. לוחצים על הכרטיסייה ביטול תוקף של מטמון.
  5. כדי לבטל את התוקף של המטמון לפי מארח, בשדה Host מציינים שם מארח, אלא אם רוצים לבטל את התוקף של הנתיב לכל שמות המארחים. שם המארח לא יכול לכלול את התו *.
  6. לוחצים על Invalidate (ביטול תוקף) ואז על Confirm (אישור) כדי לציין שרוצים ש-Media CDN יבטל את התוקף של התוכן שתואם למארח.

gcloud

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --host=HOST

מחליפים את מה שכתוב בשדות הבאים:

  • SERVICE_NAME בשם של שירות Edge Cache.
  • HOST עם שם המארח המלא של רשומת המטמון שרוצים לבטל את התוקף שלה.

לדוגמה:

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --host="media.example.com"

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

פסילה לפי נתיב

המסוף

  1. נכנסים לדף Media CDN במסוף Google Cloud .

    מעבר אל Media CDN

  2. לוחצים על הכרטיסייה Services (שירותים).
  3. לוחצים על שירות.
  4. לוחצים על הכרטיסייה ביטול תוקף של מטמון.
  5. כדי לבטל את התוקף של המטמון לפי נתיב, בשדה נתיב מציינים את הנתיב ואת שם הקובץ – לדוגמה,/videos/funny.mp4 או /segments/e94a6b1f731/*.
  6. לוחצים על ביטול.

gcloud

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --path=PREFIX

מחליפים את מה שכתוב בשדות הבאים:

  • SERVICE_NAME בשם של שירות Edge Cache.
  • PREFIX עם קידומת נתיב שמסתיימת ב-'*' שתואמת לרשומות במטמון שצריך לבטל את התוקף שלהן.

לדוגמה:

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --path="/segments/e94a6b1f731/*"

אפשר גם לבטל נתיב מדויק על ידי השמטת התו * בסוף. העברת הערך --path="/videos/funny.mp4" מבטלת את התוקף של התגובה ששמורה במטמון (אם יש כזו) שתואמת לנתיב הזה.

ביטול תוקף לפי תג מטמון

המסוף

  1. נכנסים לדף Media CDN במסוף Google Cloud .

    מעבר אל Media CDN

  2. לוחצים על הכרטיסייה Services (שירותים).
  3. לוחצים על שירות.
  4. לוחצים על הכרטיסייה ביטול תוקף של מטמון.
  5. כדי לבטל את התוקף של מטמון לפי תגים, מציינים תג אחד או יותר בתגי מטמון. כדי להפריד בין התגים, משתמשים ברווחים או בפסיקים. אפשר להוסיף עד 10 תגי מטמון לביטול תוקף.
  6. לוחצים על ביטול.

gcloud

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --tags=TAGS

מחליפים את מה שכתוב בשדות הבאים:

  • SERVICE_NAME בשם של שירות Edge Cache.
  • TAGS עם רשימה מופרדת בפסיקים של תגים.

לדוגמה:

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --tags="status=404,content-type=text/plain"

זמן האחזור של ביטול התוקף

ביטול תוקף של מטמון באלפי המיקומים של Media CDN בדרך כלל מסתיים תוך דקה אחת ברחבי העולם.

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

רישום ביומן

אם יומני הביקורת מופעלים, קריאות לביטול תוקף נרשמות ב-Cloud Logging.

מגבלות

יש הגבלת קצב על ביטולים. אם תחרגו ממגבלת שיעור הביטולים, תקבלו הודעת שגיאה של HTTP 429 עם הסטטוס RESOURCE_EXHAUSTED.

כל בקשת ביטול תוקף נחשבת לפעולה אחת מתוך מגבלת הקצב, בלי קשר לגודל או להיקף של הנתיב. לדוגמה, ביטול תוקף של קובץ יחיד (/images/my-image.png) או של נתיב עם תו כללי לחיפוש (/images/*) נחשב כבקשת ביטול תוקף אחת.