פרסום וקבלת הודעות ב-Pub/Sub באמצעות ספריית לקוח
- מפיק נתונים מפרסם הודעה בנושא Pub/Sub.
- לקוח של מינוי יוצר מינוי לנושא הזה וצורך הודעות מהמינוי.
אפשר להגדיר סביבת Pub/Sub באמצעות אחת מהשיטות הבאות:מסוף Google Cloud, Cloud Shell, ספריות לקוח או ממשקי API בארכיטקטורת REST. Cloud de Confiance בדף הזה מוסבר איך להתחיל לפרסם הודעות באמצעות ספריות לקוח של Pub/Sub.
Pub/Sub מציע ספריית לקוח ברמה גבוהה וספריית לקוח ברמה נמוכה שנוצרות אוטומטית. כברירת מחדל, כמו במדריך למתחילים הזה, אנחנו ממליצים על ספריית הלקוח ברמה גבוהה.
לפני שמתחילים
-
התקינו את ה-CLI של Google Cloud.
-
הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init -
יוצרים או בוחרים Cloud de Confiance פרויקט.
תפקידים שנדרשים כדי לבחור או ליצור פרויקט
- Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
-
יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (
roles/resourcemanager.projectCreator), שכולל את ההרשאהresourcemanager.projects.create. איך מקצים תפקידים?
-
יוצרים Cloud de Confiance פרויקט:
gcloud projects create PROJECT_ID
מחליפים את
PROJECT_IDבשם של הפרויקט ב- Cloud de Confiance שאתם יוצרים. -
בוחרים את הפרויקט שיצרתם ב- Cloud de Confiance :
gcloud config set project PROJECT_ID
מחליפים את
PROJECT_IDבשם הפרויקט ב- Cloud de Confiance .
מפעילים את Pub/Sub API, אם הוא עדיין לא מופעל:
התפקידים שנדרשים כדי להפעיל ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםgcloud services enable pubsub.googleapis.com
-
יוצרים פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם מופיעה שגיאת אימות, ודאו ש נכנסתם ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.
-
נותנים תפקידים לחשבון המשתמש. מריצים את הפקודה הבאה לכל אחד מהתפקידים הבאים ב-IAM:
roles/pubsub.admingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
USER_IDENTIFIER: המזהה של חשבון המשתמש חשבון. דוגמאות מופיעות במאמר ייצוג המשתמשים במאגרי כוח עבודה בכללי מדיניות IAM. -
ROLE: תפקיד ה-IAM שאתם מקצים לחשבון המשתמש.
-
התקנת ספריות הלקוח
בדוגמאות הבאות אפשר לראות איך להתקין את ספריות הלקוח:
Python
מידע נוסף על הגדרת סביבת הפיתוח בשפת Python מופיע במדריך להגדרת סביבת הפיתוח בשפת Python.
# ensure that you are using virtualenv
# as described in the python dev setup guide
pip install --upgrade google-cloud-pubsub
C++
מידע נוסף על התקנת ספריית C++ זמין ב-GitHub README
C#
Install-Package Google.Cloud.PubSub.V1 -Pre
המשך
רשימת סביבות זמן הריצה הנתמכות מופיעה במאמר גרסאות Go נתמכות.
go get cloud.google.com/go/pubsub/v2
Java
אם משתמשים ב-Maven, צריך להוסיף את הקוד הבא לקובץ pom.xml. במאמר העוסק בספריות BOM ל-Google Cloud Platform תוכלו לקרוא מידע נוסף על עצי מוצרים (BOM).
אם משתמשים ב-Gradle, צריך להוסיף את הקוד הבא ליחסי התלות:
אם משתמשים ב-sbt, צריך להוסיף את הקוד הבא ליחסי התלות:
אם משתמשים ב-Visual Studio Code או ב-IntelliJ, אפשר להוסיף את ספריות הלקוח לפרויקט באמצעות יישומי הפלאגין הבאים של IDE:
באמצעות יישומי הפלאגין תוכלו להשתמש בפונקציות נוספות, כמו ניהול מפתחות לחשבונות שירות. לפרטים נוספים, קראו את מאמרי העזרה של כל אחד מיישומי הפלאגין.
Node.js
npm install @google-cloud/pubsub
PHP
composer require google/cloud-pubsub
Ruby
gem install google-cloud-pubsub
חלודה
cargo add google-cloud-pubsub
יצירת נושא ומינוי
אחרי שיוצרים נושא, אפשר להירשם אליו או לפרסם בו.
כדי ליצור נושא בשם my-topic, משתמשים בפקודה gcloud pubsub topics create הבאה: אל תשנו את שם הנושא, כי יש הפניות אליו בהמשך המדריך.
gcloud pubsub topics create my-topic
משתמשים בפקודה gcloud pubsub subscriptions
create כדי ליצור מינוי. רק הודעות שפורסמו בנושא אחרי יצירת המינוי זמינות לאפליקציות הרשומות.
gcloud pubsub subscriptions create my-sub --topic my-topic
פרסום הודעות
לפני שמריצים את הדוגמאות הבאות, צריך לבטל את ההערות ולמלא את הערכים הנדרשים שמסומנים בקוד. הקישור הזה נדרש כדי לקשר את הדוגמה לפרויקט ולמשאבי Pub/Sub שיצרתם קודם.
משתמשים ב-my-topic למזהה הנושא.
Python
C++
C#
Go
Java
Node.js
Node.js
PHP
Ruby
Rust
קבלת הודעות
מגדירים מנוי כדי למשוך את ההודעות שפרסמתם. כל מנוי צריך לאשר קבלת כל הודעה בפרק זמן שניתן להגדרה. הודעות שלא אושרו מועברות מחדש. שימו לב: לפעמים Pub/Sub שולח הודעה יותר מפעם אחת כדי לוודא שכל ההודעות יגיעו למנוי לפחות פעם אחת.
לפני שמריצים את הדוגמאות הבאות, צריך לבטל את ההערות ולמלא את הערכים הנדרשים שמסומנים בקוד. הפעולה הזו נדרשת כדי לקשר את הדוגמה לפרויקט ולמשאבי Pub/Sub שיצרתם קודם.
משתמשים ב-my-sub כמזהה המינוי.
דוגמאות נוספות להורדת הודעות מופיעות במאמר דוגמאות קוד בספריית הלקוח.
Python
C++
C#
Go
Java
Node.js
PHP
Ruby
חלודה
איך היה?
ניקוי (אופציונלי)
- כדי להימנע מחיובים בחשבון Cloud de Confiance by S3NS על המשאבים שבהם השתמשתם במדריך הזה, אתם יכולים להשתמש בשורת הפקודה כדי למחוק את הנושא והמינוי.
gcloud pubsub subscriptions delete my-sub gcloud pubsub topics delete my-topic
-
אם תרצו, תוכלו לבטל את פרטי הכניסה שיצרתם ולמחוק את הקובץ המקומי של פרטי הכניסה.
gcloud auth application-default revoke
-
אם רוצים, מבטלים את פרטי הכניסה של ה-CLI של gcloud.
gcloud auth revoke
המאמרים הבאים
מידע נוסף על המושגים של Pub/Sub שמוסברים בדף הזה
קוראים את המידע הבסיסי על שירות Pub/Sub.
כך יוצרים מערכת Pub/Sub מסוג אחד לרבים, שיוצרת אפליקציית מפרסם שמפרסמת בשתי אפליקציות נפרדות של מנויים.
אפשר לנסות מדריך למתחילים אחר של Pub/Sub שמשתמש ב-ה-CLI של gcloud או במסוף.
איך מריצים את Pub/Sub באמצעות Kotlin.