במדריך הזה נדגים איך להשתמש ב-Cloud Run, ב-Cloud Vision API וב-ImageMagick כדי לזהות תמונות פוגעניות שהועלו לקטגוריה של Cloud Storage ולטשטש אותן. המדריך הזה מבוסס על המדריך שימוש ב-Pub/Sub עם Cloud Run.
במדריך הזה מוסבר איך לשנות אפליקציה לדוגמה קיימת. אפשר גם להוריד את האפליקציה לדוגמה המלאה.
מטרות
- כתיבה, פיתוח ופריסה של שירות אסינכרוני לעיבוד נתונים ב-Cloud Run.
- מפעילים את השירות על ידי העלאת קובץ ל-Cloud Storage ויצירת הודעת Pub/Sub.
- אפשר להשתמש ב-Cloud Vision API כדי לזהות תוכן אלים או תוכן למבוגרים בלבד.
- אפשר להשתמש ב-ImageMagick כדי לטשטש תמונות פוגעניות.
- כדי לבדוק את השירות, מעלים תמונה של זומבי שאוכל בשר.
עלויות
במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:
כדי להעריך את ההוצאות בהתאם לתחזית השימוש שלכם, אתם יכולים להיעזר במחשבון העלויות.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
מפעילים את ממשקי ה-API של Artifact Registry, Cloud Build, Pub/Sub, Cloud Run, Cloud Storage ו-Cloud Vision.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידים- מתקינים ומפעילים את ה-CLI של gcloud.
- עדכון רכיבים:
gcloud components update
- מגדירים נושא Pub/Sub, מינוי מאובטח לשליחת הודעות ופונקציית Cloud Run ראשונית לטיפול בהודעות, לפי המדריך לשימוש ב-Pub/Sub.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות להשלמת המדריך, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:
- עריכה ב-Cloud Build (
roles/cloudbuild.builds.editor) - אדמין ב-Cloud Run (
roles/run.admin) - בעל הרשאת גישה לתצוגת יומנים (
roles/logging.viewAccessor) - אדמין IAM בפרויקט (
roles/resourcemanager.projectIamAdmin) - אדמין Pub/Sub (
roles/pubsub.admin) - משתמש בחשבון שירות (
roles/iam.serviceAccountUser) - צרכן שימוש בשירות (
roles/serviceusage.serviceUsageConsumer) - אדמין באחסון (
roles/storage.admin)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
הגדרת ברירות מחדל ב-gcloud
כדי להגדיר את gcloud עם ערכי ברירת מחדל לשירות Cloud Run:
מגדירים את פרויקט ברירת המחדל:
gcloud config set project PROJECT_ID
מחליפים את PROJECT_ID בשם הפרויקט שיצרתם לצורך המדריך הזה.
מגדירים את gcloud לאזור שבחרתם:
gcloud config set run/region REGION
מחליפים את REGION באזור נתמך ב-Cloud Run לבחירתכם.
מיקומים של Cloud Run
Cloud Run הוא שירות אזורי, כלומר התשתית שמריצה את שירותי Cloud Run ממוקמת באזור ספציפי ומנוהלת על ידי Google כך שתהיה זמינה באופן יתירתי בכל התחומים באותו אזור.
הקריטריונים העיקריים לבחירת האזור שבו יפעלו שירותי Cloud Run הם זמן האחזור, הזמינות או העמידות שנדרשים לכם.
בדרך כלל אפשר לבחור את האזור הקרוב ביותר למשתמשים, אבל כדאי לקחת בחשבון את המיקום של מוצרים Google Cloud
אחרים שבהם נעשה שימוש בשירות Cloud Run.
השימוש במוצרים של Google Cloud Google Cloud יחד בכמה מיקומים יכול להשפיע על זמן האחזור ועל העלות של השירות.
Cloud Run זמין באזורים הבאים:
בכפוף לתמחור ברמה 1
asia-east1(טייוואן)asia-northeast1(טוקיו)-
asia-northeast2(אוסקה) asia-south1(מומבאי, הודו)-
asia-southeast3(בנגקוק) europe-north1(פינלנד)רמה נמוכה של CO2
europe-north2(שטוקהולם)רמה נמוכה של CO2
europe-southwest1(מדריד)רמה נמוכה של CO2
europe-west1(בלגיה)רמה נמוכה של CO2
europe-west4(הולנד)רמה נמוכה של CO2
europe-west8(מילאנו)europe-west9(פריז)רמה נמוכה של CO2
me-west1(תל אביב)northamerica-south1(מקסיקו)us-central1(אייווה)רמה נמוכה של CO2
us-east1(דרום קרוליינה)-
us-east4(צפון וירג'יניה) us-east5(Columbus)us-south1(דאלאס)רמה נמוכה של CO2
us-west1(אורגון)רמה נמוכה של CO2
בכפוף לתמחור ברמה 2
africa-south1(יוהנסבורג)asia-east2(הונג קונג)asia-northeast3(סיאול, קוריאה הדרומית)asia-southeast1(סינגפור)asia-southeast2(ג'אקארטה)asia-south2(דלהי, הודו)-
australia-southeast1(סידני) australia-southeast2(מלבורן)europe-central2(ורשה, פולין)-
europe-west10(Berlin) europe-west12(טורינו)europe-west2(לונדון, בריטניה)רמה נמוכה של CO2
-
europe-west3(פרנקפורט, גרמניה) europe-west6(ציריך, שווייץ)רמה נמוכה של CO2
-
me-central1(דוחה) -
me-central2(דמאם) northamerica-northeast1(מונטריאול)רמה נמוכה של CO2
northamerica-northeast2(טורונטו)רמה נמוכה של CO2
southamerica-east1(סאו פאולו, ברזיל)רמה נמוכה של CO2
southamerica-west1(סנטיאגו, צ'ילה)רמה נמוכה של CO2
-
us-west2(לוס אנג'לס) -
us-west3(סולט לייק סיטי) -
us-west4(לאס וגאס)
אם כבר יצרתם שירות Cloud Run, תוכלו לראות את האזור בלוח הבקרה של Cloud Run בGoogle Cloud מסוף.
הסבר על רצף הפעולות
במדריך הזה, זרימת הנתונים מתבצעת לפי השלבים הבאים:
- משתמש מעלה תמונה לקטגוריה של Cloud Storage.
- Cloud Storage מפרסם הודעה על הקובץ החדש ב-Pub/Sub.
- שירות Pub/Sub דוחף את ההודעה לשירות Cloud Run.
- השירות Cloud Run מאחזר את קובץ האימג' שמופיע בהודעה ב-Pub/Sub.
- שירות Cloud Run משתמש ב-Cloud Vision API כדי לנתח את התמונה.
- אם מזוהה תוכן אלים או תוכן למבוגרים בלבד, שירות Cloud Run משתמש ב-ImageMagick כדי לטשטש את התמונה.
- שירות Cloud Run מעלה את התמונה המטושטשת לקטגוריה אחרת של Cloud Storage לשימוש.
השימוש הבא בתמונה המטושטשת נשאר כתרגיל לקורא.
יצירת מאגר רגיל ב-Artifact Registry
יוצרים מאגר רגיל של Artifact Registry לאחסון קובץ האימג' של הקונטיינר:
gcloud artifacts repositories create REPOSITORY \ --repository-format=docker \ --location=REGION
מחליפים את:
- REPOSITORY בשם ייחודי למאגר.
- REGION עם האזור שבו ישמש מאגר Artifact Registry. Google Cloud
הגדרת קטגוריות של Cloud Storage
gcloud
יוצרים קטגוריה של Cloud Storage להעלאת תמונות, כאשר INPUT_BUCKET_NAME הוא שם קטגוריה ייחודי גלובלית:
gcloud storage buckets create gs://INPUT_BUCKET_NAME
שירות Cloud Run קורא רק מהקטגוריה הזו.
יוצרים קטגוריה שנייה ב-Cloud Storage לקבלת תמונות מטושטשות, כאשר BLURRED_BUCKET_NAME הוא שם קטגוריה ייחודי גלובלית:
gcloud storage buckets create gs://BLURRED_BUCKET_NAME
השירות Cloud Run מעלה את התמונות המטושטשות לדלי הזה. שימוש בדלי נפרד מונע מתמונות שעברו עיבוד להפעיל מחדש את השירות.
כברירת מחדל, עדכונים ב-Cloud Run מופעלים בתור חשבון השירות שמוגדר כברירת מחדל ב-Compute Engine.
אם אתם משתמשים בחשבון שירות שמנוהל על ידי המשתמש, אתם צריכים לוודא שהקציתם את תפקידי ה-IAM הנדרשים כדי שלחשבון השירות תהיה הרשאת
storage.objects.getלקריאה מ-INPUT_BUCKET_NAME והרשאתstorage.objects.createלהעלאה אל BLURRED_BUCKET_NAME.
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
יוצרים שתי קטגוריות של Cloud Storage: אחת להעלאת תמונות מקוריות ואחת לשירות Cloud Run להעלאת תמונות מטושטשות.
כדי ליצור את שתי הקטגוריות של Cloud Storage עם שמות ייחודיים גלובלית, מוסיפים את הקוד הבא לקובץ main.tf הקיים:
כברירת מחדל, עדכונים ב-Cloud Run מופעלים בתור חשבון השירות שמוגדר כברירת מחדל ב-Compute Engine.
אם אתם משתמשים בחשבון שירות שמנוהל על ידי המשתמש, אתם צריכים לוודא שהקציתם את תפקידי ה-IAM הנדרשים כדי שלחשבון תהיה הרשאת storage.objects.get לקריאה מ-google_storage_bucket.imageproc_input והרשאת storage.objects.create להעלאה אל google_storage_bucket.imageproc_output.
בשלבים הבאים תיצרו ותפעילו שירות לעיבוד הודעות על העלאות קבצים אל INPUT_BUCKET_NAME. כדי למנוע הפעלה מוקדמת של השירות החדש, מפעילים את שליחת ההתראות אחרי שמבצעים פריסה ובדיקה של השירות.
שינוי קוד לדוגמה במדריך בנושא Pub/Sub
המדריך הזה מבוסס על הקוד שנוצר במדריך לשימוש ב-Pub/Sub. אם עדיין לא השלמתם את ההדרכה הזו, עכשיו זה הזמן. דלגו על שלבי הניקוי וחזרו לכאן כדי להוסיף התנהגות של עיבוד תמונות.
הוספת קוד לעיבוד תמונות
קוד עיבוד התמונה מופרד מטיפול בבקשות כדי לשפר את הקריאות ולאפשר בדיקה קלה יותר. כדי להוסיף קוד לעיבוד תמונה:
עוברים לספרייה של הקוד לדוגמה של המדריך בנושא Pub/Sub.
מוסיפים קוד לייבוא יחסי התלות של עיבוד התמונה, כולל ספריות לשילוב עם Google Cloud שירותים, ImageMagick ומערכת הקבצים.
Node.js
פותחים קובץimage.jsחדש בכלי העריכה ומעתיקים אליו את הטקסט הבא:Python
פותחים קובץimage.pyחדש בכלי העריכה ומעתיקים אליו את הטקסט הבא:המשך
פותחים קובץimagemagick/imagemagick.goחדש בכלי העריכה ומעתיקים אליו את הטקסט הבא:Java
פותחים קובץsrc/main/java/com/example/cloudrun/ImageMagick.javaחדש בעורך ומעתיקים אליו את הטקסט הבא:מוסיפים קוד לקבלת הודעת Pub/Sub כאובייקט אירוע ולשליטה בעיבוד התמונה.
האירוע מכיל נתונים על התמונה שהועלתה במקור. הקוד הזה קובע אם צריך לטשטש את התמונה. הוא עושה זאת על ידי בדיקת התוצאות של ניתוח Cloud Vision כדי לזהות תוכן אלים או תוכן למבוגרים בלבד.
Node.js
Python
המשך
Java
מאחזרים את התמונה שאליה מתייחסים מקטגוריית הקלט של Cloud Storage שנוצרה למעלה, משתמשים ב-ImageMagick כדי להחיל על התמונה אפקט של טשטוש ומעלים את התוצאה לקטגוריית הפלט.
Node.js
Python
המשך
Java
שילוב עיבוד תמונות בקוד לדוגמה של Pub/Sub
כדי לשנות את השירות הקיים כך שיכלול את קוד עיבוד התמונות:
מוסיפים תלות חדשה לשירות, כולל ספריות הלקוח של Cloud Vision ו-Cloud Storage:
Node.js
npm install gm @google-cloud/storage @google-cloud/visionPython
מוסיפים את ספריות הלקוח הנדרשות כך שקובץrequirements.txtייראה בערך כך:המשך
אפליקציית הדוגמה של Go משתמשת במודולים של Go. יחסי התלות החדשים שנוספו למעלה בהצהרת הייבואimagemagick/imagemagick.goיורדו באופן אוטומטי על ידי הפקודה הבאה שזקוקה להם.Java
מוסיפים את התלות הבאה בקטע<dependencyManagement>בקובץpom.xml: מוסיפים את יחסי התלות הבאים בקטע<dependencies>בקובץpom.xml:מוסיפים את חבילת המערכת ImageMagick לקונטיינר על ידי שינוי
Dockerfileמתחת להצהרהFROM. אם משתמשים ב-Dockerfile 'רב-שלבי', צריך למקם את הפקודה הזו בשלב הסופי.Debian/Ubuntu Alpine מידע נוסף על עבודה עם חבילות מערכת בשירות Cloud Run זמין במדריך לשימוש בחבילות מערכת.
מחליפים את הקוד הקיים לטיפול בהודעות Pub/Sub בקריאה לפונקציה של לוגיקת הטשטוש החדשה.
Node.js
קובץapp.jsמגדיר את אפליקציית Express.js ומכין את ההודעות שהתקבלו מ-Pub/Sub לשימוש. צריך לבצע את השינויים הבאים:- הוספת קוד לייבוא קובץ
image.jsחדש - מסירים את הקוד הקיים 'Hello World' מהנתיב
- הוספת קוד כדי לאמת עוד יותר את הודעת Pub/Sub
הוספת קוד להפעלת הפונקציה החדשה לעיבוד תמונות
בסיום, הקוד ייראה כך:
Python
קובץmain.pyמגדיר את אפליקציית Flask ומכין את ההודעות שהתקבלו מ-Pub/Sub לשימוש. צריך לבצע את השינויים הבאים:- הוספת קוד לייבוא קובץ
image.pyחדש - מסירים את הקוד הקיים 'Hello World' מהנתיב
- הוספת קוד כדי לאמת עוד יותר את הודעת Pub/Sub
הוספת קוד להפעלת הפונקציה החדשה לעיבוד תמונות
בסיום, הקוד ייראה כך:
המשך
קובץmain.goמגדיר את שירות ה-HTTP ומכין את ההודעות שהתקבלו מ-Pub/Sub לשימוש. צריך לבצע את השינויים הבאים:- הוספת קוד לייבוא קובץ
imagemagick.goחדש - מסירים את הקוד הקיים של Hello World מה-handler.
- הוספת קוד כדי לאמת עוד יותר את הודעת Pub/Sub
- הוספת קוד להפעלת הפונקציה החדשה לעיבוד תמונות
Java
קובץPubSubController.javaמגדיר את בקר הנתונים שמטפל בבקשות HTTP ומכין את ההודעות שהתקבלו מ-Pub/Sub לשימוש. צריך לבצע את השינויים הבאים:- הוספת הייבוא החדש
- מסירים את הקוד הקיים 'Hello World' מהבקר
- הוספת קוד כדי לאמת עוד יותר את הודעת Pub/Sub
- הוספת קוד להפעלת הפונקציה החדשה לעיבוד תמונות
- הוספת קוד לייבוא קובץ
הורדת הדוגמה המלאה
כדי לאחזר את דוגמת הקוד המלאה של עיבוד תמונה לשימוש:
משכפלים את מאגר האפליקציה לדוגמה ומעבירים אותו למכונה המקומית:
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
אפשרות נוספת היא להוריד את הדוגמה כקובץ ZIP ולחלץ אותה.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
אפשרות נוספת היא להוריד את הדוגמה כקובץ ZIP ולחלץ אותה.
המשך
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
אפשרות נוספת היא להוריד את הדוגמה כקובץ ZIP ולחלץ אותה.
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
אפשרות נוספת היא להוריד את הדוגמה כקובץ ZIP ולחלץ אותה.
עוברים לספרייה שמכילה את הקוד לדוגמה של Cloud Run:
Node.js
cd nodejs-docs-samples/run/image-processing/
Python
cd python-docs-samples/run/image-processing/
Go
cd golang-samples/run/image-processing/
Java
cd java-docs-samples/run/image-processing/
שליחת הקוד
תהליך שליחת הקוד כולל שלושה שלבים: יצירת קובץ אימג' של קונטיינר באמצעות Cloud Build, העלאת קובץ האימג' של הקונטיינר ל-Artifact Registry ופריסת קובץ האימג' של הקונטיינר ל-Cloud Run.
כדי לשלוח את הקוד:
יוצרים את הקונטיינר ומפרסמים אותו ב-Artifact Registry:
Node.js
gcloud builds submit --tag REGION-docker.pkg.dev/PROJECT_ID /REPOSITORY/pubsub
כאשר
pubsubהוא שם השירות.מחליפים את:
- PROJECT_ID במזהה הפרויקט ב- Google Cloud
- REPOSITORY בשם המאגר ב-Artifact Registry.
- REGION עם האזור שבו ישמש מאגר Artifact Registry. Google Cloud
אם הפעולה תצליח, תופיע הודעה עם המזהה, זמן היצירה ושם התמונה. התמונה מאוחסנת ב-Artifact Registry ואפשר לעשות בה שימוש חוזר אם צריך.
Python
gcloud builds submit --tag REGION-docker.pkg.dev/PROJECT_ID /REPOSITORY/pubsub
כאשר
pubsubהוא שם השירות.מחליפים את:
- PROJECT_ID במזהה הפרויקט ב- Google Cloud
- REPOSITORY בשם המאגר ב-Artifact Registry.
- REGION עם האזור שבו ישמש מאגר Artifact Registry. Google Cloud
אם הפעולה תצליח, תופיע הודעה עם המזהה, זמן היצירה ושם התמונה. התמונה מאוחסנת ב-Artifact Registry ואפשר לעשות בה שימוש חוזר אם צריך.
המשך
gcloud builds submit --tag REGION-docker.pkg.dev/PROJECT_ID /REPOSITORY/pubsub
כאשר
pubsubהוא שם השירות.מחליפים את:
- PROJECT_ID במזהה הפרויקט ב- Google Cloud
- REPOSITORY בשם המאגר ב-Artifact Registry.
- REGION עם האזור שבו ישמש מאגר Artifact Registry. Google Cloud
אם הפעולה תצליח, תופיע הודעה עם המזהה, זמן היצירה ושם התמונה. התמונה מאוחסנת ב-Artifact Registry ואפשר לעשות בה שימוש חוזר אם צריך.
Java
בדוגמה הזו נעשה שימוש ב-Jib כדי ליצור תמונות Docker באמצעות כלים נפוצים של Java. Jib מבצע אופטימיזציה של בניית קונטיינרים בלי צורך בקובץ Dockerfile או בהתקנה של Docker. מידע נוסף על יצירת מאגרי Java באמצעות Jibבאמצעות קובץ Docker, מגדירים ויוצרים תמונת בסיס עם חבילות המערכת שהותקנו כדי לבטל את תמונת הבסיס שמוגדרת כברירת מחדל ב-Jib:
gcloud builds submit --tag REGION-docker.pkg.dev/PROJECT_ID /REPOSITORY/imagemagick
מחליפים את:
- PROJECT_ID במזהה הפרויקט ב- Google Cloud
- REPOSITORY בשם המאגר ב-Artifact Registry.
- REGION עם האזור שבו ישמש מאגר Artifact Registry. Google Cloud
משתמשים בכלי העזר לפרטי כניסה של gcloud כדי לתת ל-Docker הרשאה להעביר בדחיפה אל Artifact Registry.
gcloud auth configure-docker
יוצרים את מאגר התגים הסופי באמצעות Jib ומפרסמים אותו ב-Artifact Registry:
mvn compile jib:build \ -Dimage=REGION-docker.pkg.dev/PROJECT_ID /REPOSITORY/pubsub \ -Djib.from.image=REGION-docker.pkg.dev/PROJECT_ID /REPOSITORY/imagemagick
מחליפים את:
- PROJECT_ID במזהה הפרויקט ב- Google Cloud
- REPOSITORY בשם המאגר ב-Artifact Registry.
- REGION עם האזור שבו ישמש מאגר Artifact Registry. Google Cloud
מריצים את הפקודה הבאה כדי לפרוס את השירות, ומשתמשים באותו שם שירות שבו השתמשתם במדריך לשימוש ב-Pub/Sub:
Node.js
gcloud run deploy pubsub-tutorial --image REGION-docker.pkg.dev/PROJECT_ID /REPOSITORY/pubsub --set-env-vars=BLURRED_BUCKET_NAME=BLURRED_BUCKET_NAME --no-allow-unauthenticated
Python
gcloud run deploy pubsub-tutorial --image REGION-docker.pkg.dev/PROJECT_ID /REPOSITORY/pubsub --set-env-vars=BLURRED_BUCKET_NAME=BLURRED_BUCKET_NAME --no-allow-unauthenticated
Go
gcloud run deploy pubsub-tutorial --image REGION-docker.pkg.dev/PROJECT_ID /REPOSITORY/pubsub --set-env-vars=BLURRED_BUCKET_NAME=BLURRED_BUCKET_NAME --no-allow-unauthenticated
Java
gcloud run deploy pubsub-tutorial --image REGION-docker.pkg.dev/PROJECT_ID /REPOSITORY/pubsub --set-env-vars=BLURRED_BUCKET_NAME=BLURRED_BUCKET_NAME --memory 512M --no-allow-unauthenticated
כאשר
pubsubהוא שם הקונטיינר ו-pubsub-tutorialהוא שם השירות. שימו לב שקובץ האימג' של הקונטיינר נפרס בשירות ובאזור (Cloud Run) שהגדרתם קודם בקטע הגדרת ברירות מחדל ב-gcloud. מחליפים את:- PROJECT_ID במזהה הפרויקט ב- Google Cloud
- REPOSITORY בשם המאגר ב-Artifact Registry.
- REGION עם האזור שבו ישמש מאגר Artifact Registry. Google Cloud
- BLURRED_BUCKET_NAME עם קטגוריה של Cloud Storage שיצרתם קודם כדי לקבל תמונות מטושטשות, כדי להגדיר את משתנה הסביבה.
הדגל
--no-allow-unauthenticatedמגביל גישה לא מאומתת לשירות. אם השירות פרטי, אפשר להסתמך על השילוב האוטומטי של Cloud Run עם Pub/Sub כדי לאמת בקשות. פרטים נוספים על ההגדרה מופיעים במאמר בנושא שילוב עם Pub/Sub. פרטים נוספים על אימות מבוסס-IAM זמינים במאמר ניהול גישה.מחכים עד שהפריסה תושלם. התהליך הזה יכול להימשך כחצי דקה. אם הפעולה בוצעה ללא שגיאות, כתובת ה-URL של השירות מוצגת בשורת הפקודה.
הפעלת ההתראות מ-Cloud Storage
הגדרת Cloud Storage לפרסום הודעה בנושא Pub/Sub בכל פעם שקובץ (שנקרא אובייקט) מועלה או משתנה. שולחים את ההתראה לנושא שנוצר קודם, כך שכל העלאה חדשה של קובץ תפעיל את השירות.
gcloud
gcloud storage service-agent --project=PROJECT_ID gcloud storage buckets notifications create gs://INPUT_BUCKET_NAME --topic=myRunTopic --payload-format=json
myRunTopic הוא הנושא שיצרתם במדריך הקודם.
מחליפים את INPUT_BUCKET_NAME בשם שבו השתמשתם כשיצרתם את הקטגוריות.
לפרטים נוספים על התראות של קטגוריות אחסון, ראו הגדרת התראות Pub/Sub ל-Cloud Storage.
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
כדי להפעיל התראות, צריך שיהיה קיים חשבון שירות של Cloud Storage שייחודי לפרויקט, וצריכה להיות לו הרשאת IAM pubsub.publisher בנושא Pub/Sub. כדי להעניק את ההרשאה הזו וליצור התראה ב-Cloud Storage, מוסיפים את השורות הבאות לקובץ main.tf הקיים:
רוצה לנסות?
העלאת תמונה פוגענית, כמו התמונה הזו של זומבי שאוכל בשר:
curl -o zombie.jpg https://cdn.pixabay.com/photo/2015/09/21/14/24/zombie-949916_960_720.jpg gcloud storage cp zombie.jpg gs://INPUT_BUCKET_NAME
כאשר INPUT_BUCKET_NAME היא קטגוריה של Cloud Storage שיצרתם קודם להעלאת תמונות.
עוברים ליומני השירות:
- נכנסים לדף Cloud Run ב Google Cloud מסוף.
- לוחצים על השירות
pubsub-tutorial. - לוחצים על הכרטיסייה יומנים. יכול להיות שייקח ליומנים כמה דקות להופיע. אם הם לא מופיעים מיד, כדאי לבדוק שוב אחרי כמה רגעים.
מחפשים את ההודעה
Blurred image: zombie.png.אפשר לראות את התמונות המטושטשות ב-BLURRED_BUCKET_NAME Cloud Storage bucket שיצרתם קודם: מאתרים את ה-bucket בדף Cloud Storage ב Google Cloud מסוף
הסרת המשאבים
כדי להימנע מחיובים נוספים בחשבון Google Cloud , מוחקים את כל המשאבים שהצבתם באמצעות המדריך הזה.
מחיקת הפרויקט
אם יצרתם פרויקט חדש בשביל המדריך הזה, מוחקים את הפרויקט. אם השתמשתם בפרויקט קיים ואתם רוצים לשמור אותו בלי השינויים שהוספתם במדריך הזה, תצטרכו למחוק את המשאבים שיצרתם לצורך המדריך.
הדרך הקלה ביותר לבטל את החיוב היא למחוק את הפרויקט שיצרתם בשביל המדריך.
כדי למחוק את הפרויקט:
- במסוף Google Cloud , נכנסים לדף Manage resources.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
מחיקת משאבי הדרכה
מוחקים את שירות Cloud Run שפרסתם במדריך הזה. שירותי Cloud Run לא צוברים עלויות עד שהם מקבלים בקשות.
כדי למחוק את שירות Cloud Run, מריצים את הפקודה הבאה:
gcloud run services delete SERVICE-NAME
מחליפים את SERVICE-NAME בשם השירות.
אפשר גם למחוק שירותים של Cloud Run מGoogle Cloud המסוף.
מסירים את הגדרת ברירת המחדל של האזור
gcloudשהוספתם במהלך ההגדרה של המדריך:gcloud config unset run/regionמסירים את הגדרות הפרויקט:
gcloud config unset projectמחיקת משאבים אחרים Google Cloud שנוצרו במדריך הזה:
- מחיקת נושא Pub/Sub
myRunTopic - מחיקת המינוי ל-Pub/Sub
myRunSubscription - מחיקת קובץ אימג' של קונטיינר מ-Artifact Registry.
- מחיקה של חשבון השירות של המפעיל
cloud-run-pubsub-invoker@PROJECT_ID.iam.gserviceaccount.com - מחיקת הקטגוריות של Cloud Storage שנוצרו עבור ה-placeholders
INPUT_BUCKET_NAMEו-BLURRED_BUCKET_NAME
- מחיקת נושא Pub/Sub
המאמרים הבאים
- מידע נוסף על שמירת נתונים ב-Cloud Run באמצעות Cloud Storage
- להבין איך להשתמש ב-Cloud Vision API כדי לזהות דברים חוץ מתוכן בוטה.
- כדאי להעמיק את הקריאה ולהכיר דוגמאות לארכיטקטורות, תרשימים ושיטות מומלצות בנושאי Google Cloud. כל אלה זמינים במרכז הארכיטקטורה של Cloud.