מאגר סכימות הוא מאגר לניהול סכימות שמשמשות את הצרכנים והיוצרים של Kafka.
במאמר הזה מוסבר איך ליצור משאב של מאגר סכימות בתוך שירות מנוהל ל-Apache Kafka באמצעותGoogle Cloud המסוף, Google Cloud CLI או Managed Kafka API.
לפני שמתחילים
לפני שיוצרים מאגר סכימות, צריך לבצע את הפעולות הבאות:
- יוצרים אשכול של שירות מנוהל ל-Apache Kafka באותו אזור שבו מתכננים ליצור מאגר סכימות.
תפקידים והרשאות נדרשים
כדי לקבל את ההרשאות שנדרשות ליצירת מאגר סכימות, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM Managed Kafka Schema Registry Editor (roles/managedkafka.schemaRegistryEditor) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות ליצירת מאגר סכימות. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי ליצור מאגר סכימות, צריך את ההרשאות הבאות:
-
צריך להעניק את ההרשאה הזו במיקום ההורה:
managedkafka.schemaRegistries.create
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
יצירת מאגר סכימות
המסוף
- נכנסים לדף Schema registries במסוף Google Cloud .
ייפתח הדף Schema registries.
- בדף Schema registries, לוחצים על Create.
ייפתח הדף Create Schema registry.
- בשדה Schema registry name (שם מאגר הסכימות), מזינים מזהה ייחודי למאגר.
השם צריך להתחיל באות, להכיל רק אותיות (a-z, A-Z), מספרים (0-9) וקווים תחתונים (_), ולא יכול להיות ארוך מ-63 תווים.
- בוחרים או מזינים אזור מהתפריט.
כבר צריך להיות לכם אשכול אחד או יותר של שירות מנוהל ל-Apache Kafka פעילים באזור שצוין. כדי לבדוק את האזורים של האשכולות, אפשר לעיין במסמכי התיעוד בנושא רישום האשכולות.
רשימת המיקומים הנתמכים זמינה במאמר בנושא מיקומים של שירות מנוהל ל-Apache Kafka.
- לוחצים על יצירה.
gcloud
-
התקינו את ה-CLI של Google Cloud. אחר כך, מאתחלים את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
- משתמשים בפקודה
gcloud beta managed-kafka schema-registries createכדי ליצור מאגר סכימות:gcloud beta managed-kafka schema-registries create SCHEMA_REGISTRY_ID \ --location=LOCATION \
מחליפים את מה שכתוב בשדות הבאים:
- SCHEMA_REGISTRY_ID (חובה): מזהה ייחודי של מאגר הסכימות החדש. החלק הזה הוא חלק משם המשאב של המרשם. השם צריך להתחיל באות, להכיל רק אותיות (a-z, A-Z), מספרים (0-9) וקווים תחתונים (_), ולא יכול להיות ארוך מ-63 תווים.
- LOCATION (חובה): Google Cloud האזור שבו ייווצר מאגר הסכימות. המיקום הזה צריך להיות זהה לאזור של האשכול או האשכולות של השירות המנוהל ל-Apache Kafka שמשתמשים במאגר הזה. מידע על מיקומים נתמכים זמין במאמר מיקומים של שירות מנוהל ל-Apache Kafka.
כדי ליצור מאגר סכימות בשם
test_schema_registryבאזורus-central1, מריצים את הפקודה הבאה:gcloud beta managed-kafka schema-registries create test_schema_registry \ --location=us-central1
אחרי שהפקודה מסתיימת בהצלחה, נוצר מאגר הסכימות. לאחר מכן אפשר להגדיר את לקוחות Kafka כך שישתמשו בכתובת ה-URL שלו. כדי לראות את כתובת ה-URL של מאגר הסכימות, אפשר לעיין ב פרטים בדף מאגר הסכימות.
REST
כדי ליצור מכונה של מרשם סכימות באמצעות API בארכיטקטורת REST, מבצעים את השלבים הבאים.
- שולחים בקשת
POSTשדומה לבקשה הבאה: - יוצרים קובץ JSON
request-body.jsonעם המבנה הבא: - SCHEMA_REGISTRY_ID (חובה): מזהה ייחודי של מאגר הסכימות החדש. החלק הזה הוא חלק משם המשאב של המרשם. השם צריך להתחיל באות, להכיל רק אותיות (a-z, A-Z), מספרים (0-9) וקווים תחתונים (_), ולא יכול להיות ארוך מ-63 תווים.
POST https://managedkafka.googleapis.com/v1main/projects/PROJECT_ID/locations/LOCATION/schemaRegistries Authorization: Bearer $(gcloud auth application-default print-access-token) Content-Type: application/json --data @response-body.json
{ "schemaRegistryId": "SCHEMA_REGISTRY_ID" }
מחליפים את מה שכתוב בשדות הבאים:
מריצים את הבקשה POST עם ה-URI, הכותרות והגוף שנוצרו. אם הפעולה מצליחה, ה-API מחזיר קוד סטטוס 200 OK וגוף תגובה שמכיל את ייצוג ה-JSON של משאב SchemaRegistry שנוצר.
זוהי דוגמה לתגובה מוצלחת.
{ "name": "projects/testing-311516/locations/us-central1/schemaRegistries/test", "contexts": [ "projects/testing-311516/locations/us-central1/schemaRegistries/test/contexts/." ] }
projects/testing-311516/locations/us-central1/schemaRegistries/test/contexts/.
מייצג את הקשר שמוגדר כברירת מחדל. כשמשתמשים במשאבים בהקשר ברירת המחדל, לא צריך לציין הקשר.
מידע נוסף מופיע במאמרי העזרה של ה-API בארכיטקטורת REST.