שליחה וקבלה של הודעות ב-Pub/Sub באמצעות ספריית לקוח
- מפיק נתונים מפרסם הודעה בנושא Pub/Sub.
- לקוח של מינוי יוצר מינוי לנושא הזה וצורך הודעות מהמינוי.
אפשר להגדיר סביבת Pub/Sub באמצעות כל אחת מהשיטות הבאות: Google Cloud מסוף, Cloud Shell, ספריות לקוח או ממשקי REST API. בדף הזה מוסבר איך להתחיל לפרסם הודעות ב-Pub/Sub באמצעות ספריות לקוח.
Pub/Sub מציע ספריית לקוח ברמה גבוהה וברמה נמוכה שנוצרת באופן אוטומטי. כברירת מחדל, כמו במדריך הזה, מומלץ להשתמש בספריית הלקוח ברמה גבוהה.
לחצו על תראו לי איך כדי לקרוא הסבר מפורט על המשימה ישירות במסוף Google Cloud :
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init -
יוצרים או בוחרים Google Cloud פרויקט.
תפקידים שנדרשים כדי לבחור או ליצור פרויקט
- Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
-
יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (
roles/resourcemanager.projectCreator), שכולל את ההרשאהresourcemanager.projects.create. איך מקצים תפקידים
-
יוצרים Google Cloud פרויקט:
gcloud projects create PROJECT_ID
מחליפים את
PROJECT_IDבשם של פרויקט Google Cloud שיוצרים. -
בוחרים את הפרויקט שיצרתם: Google Cloud
gcloud config set project PROJECT_ID
מחליפים את
PROJECT_IDבשם הפרויקט ב- Google Cloud .
מפעילים את Pub/Sub API:
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידיםgcloud services enable pubsub.googleapis.com
-
יוצרים פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
מעניקים תפקידים לחשבון המשתמש. מריצים את הפקודה הבאה לכל אחד מהתפקידים הבאים ב-IAM:
roles/pubsub.admingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
USER_IDENTIFIER: המזהה של חשבון המשתמש . לדוגמה,myemail@example.com. -
ROLE: תפקיד ה-IAM שאתם מקצים לחשבון המשתמש.
-
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init -
יוצרים או בוחרים Google Cloud פרויקט.
תפקידים שנדרשים כדי לבחור או ליצור פרויקט
- Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
-
יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (
roles/resourcemanager.projectCreator), שכולל את ההרשאהresourcemanager.projects.create. איך מקצים תפקידים
-
יוצרים Google Cloud פרויקט:
gcloud projects create PROJECT_ID
מחליפים את
PROJECT_IDבשם של פרויקט Google Cloud שיוצרים. -
בוחרים את הפרויקט שיצרתם: Google Cloud
gcloud config set project PROJECT_ID
מחליפים את
PROJECT_IDבשם הפרויקט ב- Google Cloud .
מפעילים את Pub/Sub API:
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידיםgcloud services enable pubsub.googleapis.com
-
יוצרים פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
מעניקים תפקידים לחשבון המשתמש. מריצים את הפקודה הבאה לכל אחד מהתפקידים הבאים ב-IAM:
roles/pubsub.admingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
USER_IDENTIFIER: המזהה של חשבון המשתמש . לדוגמה,myemail@example.com. -
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
יצירת נושא ומינוי
אחרי שיוצרים נושא, אפשר להירשם אליו או לפרסם בו.
משתמשים בפקודה gcloud pubsub topics create הבאה כדי ליצור נושא בשם my-topic. לא מומלץ לשנות את שם הנושא, כי הוא מוזכר בהמשך המדריך.
gcloud pubsub topics create my-topic
משתמשים בפקודה gcloud pubsub subscriptions
create כדי ליצור מינוי. רק הודעות שפורסמו בנושא אחרי יצירת המינוי זמינות לאפליקציות רשומות.
gcloud pubsub subscriptions create my-sub --topic my-topic
פרסום הודעות
לפני שמריצים את הדוגמאות הבאות, צריך לבטל סימון כהערה (uncomment) ולמלא את כל הערכים הנדרשים שמסומנים בקוד. הקישור הזה נדרש כדי לקשר את הדוגמה לפרויקט ולמשאבי Pub/Sub שיצרתם קודם.
משתמשים ב-my-topic כמזהה הנושא.
Python
C++
C#
המשך
Java
Node.js
Node.js
PHP
Ruby
קבלת הודעות
מגדירים מנוי כדי למשוך את ההודעות שפרסמתם. כל מנוי צריך לאשר כל הודעה בפרק זמן שניתן להגדרה. הודעות שלא אושרו נמסרות מחדש. שימו לב שב-Pub/Sub, מדי פעם, הודעה נמסרת יותר מפעם אחת כדי להבטיח שכל ההודעות יגיעו למנוי לפחות פעם אחת.
לפני שמריצים את הדוגמאות הבאות, צריך לבטל סימון כהערה (uncomment) ולמלא את כל הערכים הנדרשים שמסומנים בקוד. הפעולה הזו נדרשת כדי לקשר את הדוגמה לפרויקט ולמשאבי Pub/Sub שיצרתם קודם.
משתמשים ב-my-sub כמזהה המינוי.
דוגמאות נוספות להורדת הודעות מופיעות במאמר דוגמאות קוד בספריית הלקוח.
Python
C++
C#
המשך
Java
Node.js
PHP
Ruby
איך היה?
ניקוי (אופציונלי)
- כדי להימנע מחיובים בחשבון Google Cloud על המשאבים שבהם השתמשתם במדריך הזה, אתם יכולים להשתמש בשורת הפקודה כדי למחוק את הנושא והמינוי.
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 או במסוף.