הדף הזה מתייחס ל-Apigee, אבל לא ל-Apigee Hybrid.
לעיון במסמכי התיעוד של
Apigee Edge
במאמר הזה מוסבר איך להתקין ולהגדיר את Apigee משורת הפקודה בלי להשתמש ב-VPC peering. השלבים האלה רלוונטיים גם למודלים של מינוי וגם למודלים של תשלום לפי שימוש בארגונים בתשלום, עם או בלי שמירת נתונים.
אפשר לעיין גם במאמר אפשרויות הקצאת הרשאות.מגבלות
לאפשרות ההתקנה של קישור בין רשתות וירטואליות שמתוארת במסמך הזה יש כמה מגבלות:
- אין תמיכה ב- VPC Service Controls.
רשימה מלאה של התכונות וגישות הרישות שנתמכות ושלא נתמכות בקישור בין רשתות שכנות (peering) שאינו VPC, מופיעה במאמר הדרכה: איך בוחרים אפשרות רשת.
סיכום השלבים
אלה השלבים להקצאת הרשאות:
- שלב 1: הגדרת משתני סביבה:
מגדירים את
gcloudומגדירים משתני סביבה. הכלי Google Cloud CLI מנהל את האימות, ההגדרה המקומית, תהליך העבודה של המפתחים והאינטראקציות עם ממשקי Google Cloud APIs. - שלב 2: הפעלת ממשקי API: כדי להשתמש ב-Apigee, צריך להפעיל כמה ממשקי API של Google Cloud.
- שלב 3: יוצרים את זהות השירות של Apigee: חשבון השירות הזה משמש את ספריות הלקוח של Google Cloud לאימות מול ממשקי ה-API של Google Cloud.
- שלב 4: יצירת ארגון: ארגון Apigee (לפעמים נקרא org) הוא המאגר ברמה העליונה ב-Apigee. הוא כולל את כל הסביבות וקבוצות הסביבות, המשתמשים, פרוקסי ה-API והמשאבים הקשורים.
- שלב 5: יצירת מופע של זמן ריצה: מופע, או זמן ריצה, הוא המקום שבו הפרויקט והשירותים שקשורים אליו מאוחסנים. הוא מספק את נקודת הקצה שפונה למשתמשים של השירותים שלכם.
- שלב 6: יצירת סביבה: צריך לפרוס proxy ל-API בסביבה ולהוסיף אותו לקבוצת סביבות כדי שה-API שהוא חושף יהיה נגיש ברשת.
- שלב 7: הגדרת ניתוב: מאפשרים גישה חיצונית או גישה פנימית בלבד ל-API.
- שלב 8: פריסת proxy לדוגמה: כדי לבדוק את הקצאת ההרשאות, פורסים proxy ל-API ומבצעים קריאה אליו.
שלב 1: הגדרת משתני סביבה
מגדירים את gcloud ומגדירים משתני סביבה לשימוש בשלבים הבאים:
- חשוב לוודא שביצעתם את דרישות ההגדרה שמפורטות בקטע לפני שמתחילים.
- צריך להתקין את Cloud SDK. אם אתם צריכים להתקין אותו, תוכלו לעיין במאמר בנושא התקנת Cloud SDK.
- מאתחלים את Cloud SDK, כמו שמתואר במאמר אתחול ה-CLI של gcloud, או מוודאים שהפרויקט בענן שיצרתם בקטע דרישות מוקדמות הוא פרויקט ברירת המחדל עבור
gcloud. - מגדירים את משתני הסביבה הבאים בטרמינל של הפקודה.
בוחרים את הכרטיסייה שמתאימה לסוג הארגון שצריך:
No data residency או עם
Data residency:
אין מיקום נתונים
AUTH="$(gcloud auth print-access-token)"
PROJECT_ID="YOUR_PROJECT_ID"PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")RUNTIME_LOCATION="YOUR_RUNTIME_LOCATION"ANALYTICS_REGION="YOUR_ANALYTICS_REGION"BILLING_TYPE="YOUR_BILLING_TYPE"כאשר:
-
הכותרת AUTH מוגדרת עם אסימון Bearer.
Authenticationתשתמשו בכותרת הזו כשתיגשו לממשקי Apigee API. שימו לב שהטוקן יפוג אחרי תקופה מסוימת. כשהוא יפוג, תוכלו פשוט ליצור אותו מחדש באמצעות אותה פקודה. מידע נוסף זמין בדף העיון בנושא הפקודה print-access-token. - PROJECT_ID הוא מזהה פרויקט בענן שיצרתם במסגרת הדרישות המוקדמות.
- PROJECT_NUMBER הוא מספר הפרויקט בענן שיצרתם כחלק מהדרישות המוקדמות.
-
RUNTIME_LOCATION הוא המיקום הפיזי שבו נמצא מופע Apigee שתיצרו בהמשך. רשימת המיקומים הזמינים של סביבות זמן ריצה מופיעה במאמר בנושא מיקומים של Apigee.
-
ANALYTICS_REGION הוא המיקום הפיזי שבו יאוחסנו נתוני הניתוח של Apigee. רשימת האזורים שבהם אפשר להשתמש ב-Apigee API Analytics זמינה במאמר מיקומי Apigee.
הערכים של RUNTIME_LOCATION ו-ANALYTICS_REGION יכולים להיות זהים, אבל הם לא חייבים להיות זהים.
-
BILLING_TYPE הוא סוג החיוב של הארגון שאתם יוצרים. הערכים החוקיים הם:
PAYGלארגונים עם תוכנית Pay-as-you-go.-
SUBSCRIPTIONלארגונים עם מינוי.
המיקום של נתונים
AUTH="$(gcloud auth print-access-token)"
PROJECT_ID="YOUR_PROJECT_ID"PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")RUNTIME_LOCATION="YOUR_RUNTIME_LOCATION"CONTROL_PLANE_LOCATION="YOUR_CONTROL_PLANE_LOCATION"CONSUMER_DATA_REGION="YOUR_CONSUMER_DATA_REGION"BILLING_TYPE="YOUR_BILLING_TYPE"כאשר:
-
הכותרת AUTH מוגדרת עם אסימון Bearer.
Authenticationתשתמשו בכותרת הזו כשתיגשו לממשקי Apigee API. שימו לב שהטוקן יפוג אחרי תקופה מסוימת. כשהוא יפוג, תוכלו פשוט ליצור אותו מחדש באמצעות אותה פקודה. מידע נוסף זמין בדף העיון בנושא הפקודה print-access-token. - PROJECT_ID הוא מזהה פרויקט בענן שיצרתם במסגרת הדרישות המוקדמות.
- PROJECT_NUMBER הוא מספר הפרויקט בענן שיצרתם כחלק מהדרישות המוקדמות.
-
RUNTIME_LOCATION הוא המיקום הפיזי שבו נמצא מופע Apigee שתיצרו בהמשך. רשימת המיקומים הזמינים של סביבות זמן ריצה מופיעה במאמר בנושא מיקומים של Apigee.
המיקום של זמן הריצה חייב להיות בתוך המיקום של מישור הבקרה. - CONTROL_PLANE_LOCATION הוא המיקום הפיזי שבו יאוחסנו נתוני מישור הבקרה של Apigee. רשימת המיקומים הזמינים של מישור הבקרה מופיעה במאמר מיקומי Apigee.
- CONSUMER_DATA_REGION הוא אזור משנה של אזור מישור הבקרה. חובה לציין גם את CONTROL_PLANE_LOCATION וגם את CONSUMER_DATA_REGION. רשימת האזורים שבהם אפשר לאחסן נתונים של צרכנים זמינה במאמר בנושא מיקומי Apigee.
-
BILLING_TYPE הוא סוג החיוב של הארגון שאתם יוצרים. הערכים החוקיים הם:
PAYGלארגונים עם תוכנית Pay-as-you-go.-
SUBSCRIPTIONלארגונים עם מינוי.
-
הכותרת AUTH מוגדרת עם אסימון Bearer.
- (אופציונלי) כדי לבדוק את העבודה, אפשר להציג את הערכים שהגדרתם. שימו לב: כשרוצים להשתמש במשתנה בפקודות, צריך להוסיף לפני שם המשתנה סימן דולר ($).
אין מיקום נתונים
echo $AUTH
echo $PROJECT_IDecho $PROJECT_NUMBERecho $RUNTIME_LOCATIONecho $ANALYTICS_REGIONecho $BILLING_TYPEהתגובות לפקודות
echoאמורות להיראות כך:YOUR_TOKEN my-cloud-project 1234567890 us-west1 us-west1 SUBSCRIPTION
המיקום של נתונים
echo $AUTH
echo $PROJECT_IDecho $PROJECT_NUMBERecho $RUNTIME_LOCATIONecho $CONTROL_PLANE_LOCATIONecho $CONSUMER_DATA_REGIONecho $BILLING_TYPEהתגובות לפקודות
echoאמורות להיראות כך:YOUR_TOKEN my-cloud-project 1234567890 us-west1 us us-west1 SUBSCRIPTION
שלב 2: הפעלת ממשקי API
-
כדי להשתמש ב-Apigee, צריך להפעיל כמה ממשקי Google Cloud API. מפעילים אותם באמצעות הפקודה
services enableהבאה:gcloud services enable apigee.googleapis.com \ apihub.googleapis.com \ compute.googleapis.com \ cloudkms.googleapis.com --project=$PROJECT_ID (אופציונלי) כדי לבדוק את העבודה, משתמשים בפקודה
services listכדי להציג את כל ממשקי ה-API המופעלים:gcloud services list
בתשובה מוצגים כל השירותים המופעלים, כולל ממשקי ה-API שהפעלתם עכשיו.
שלב 3: יוצרים את הזהות בשירות Apigee
-
יוצרים את הזהות בשירות של Apigee:
gcloud beta services identity create --service=apigee.googleapis.com \ --project=$PROJECT_ID מוודאים שהנציג נוצר בהצלחה. התשובה צריכה להציג את שם הסוכן בפורמט הבא:
service-PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com. לדוגמה:Service identity created: service-1234567890@gcp-sa-apigee.iam.gserviceaccount.com
שלב 4: יצירת ארגון
לפני שיוצרים ארגון, צריך ליצור מחזיק מפתחות ומפתח להצפנת מסד נתונים בזמן ריצה (ראו שלב 1). אם משתמשים ב מיקום הנתונים, צריך ליצור מחזיקי מפתחות ומפתחות להצפנת מישור הבקרה (ראו שלב 2). המפתחות של Cloud KMS מצפינים נתונים שמאוחסנים ומשוכפלים במיקומים של זמן ריצה ושל מישור בקרה. Apigee משתמשת בישויות האלה כדי להצפין נתוני אפליקציות כמו KVM, מטמון וסודות לקוח, ואז מאחסנת אותם במסד הנתונים. מידע נוסף זמין במאמר בנושא מפתחות ההצפנה של Apigee.
-
יצירה של אוסף מפתחות ומפתח להצפנת מסד נתונים בזמן ריצה.
-
מגדירים משתנה סביבה למיקום של טבעת ההצפנה והמפתח של מסד הנתונים של זמן הריצה. כך תוכלו לשמור על עקביות כשאתם יוצרים אותם, ויהיה לכם קל יותר לעקוב אחרי ההוראות במסמכים.
הערך הוא המיקום הפיזי שבו מאוחסנים מחזיק המפתחות והמפתח של הצפנת מסד הנתונים בזמן הריצה.
אזור יחיד
הגדרות של אזור יחיד (שבהן יש רק מופע אחד באזור אחד): בוחרים מתוך המיקומים האזוריים הנתמכים של KMS.
לדוגמה:
RUNTIMEDBKEY_LOCATION="us-west1"
הערך יכול להיות זהה לערך של $RUNTIME_LOCATION (גם הוא אזור), אבל הוא לא חייב להיות זהה. עם זאת, יכול להיות שיהיה שיפור בביצועים אם הם יהיו זהים.
במספר אזורים
תצורות של מספר אזורים: בוחרים מתוך המיקומים הנתמכים במספר אזורים (למשל
usאוeurope) או המיקומים הנתמכים בשני אזורים.לדוגמה:
RUNTIMEDBKEY_LOCATION="us"
אם יש לכם הגדרה של מספר אזורים בארה"ב, מומלץ להשתמש ב-
usלמיקום שלכם, אם אפשר. אחרת, משתמשים ב-nam4. - הגדרת משתני סביבה לאוספי מפתחות של מסד נתונים ולשמות של מפתחות.
השם של מחזיק המפתחות צריך להיות ייחודי בארגון. אם יוצרים אזור שני או אזורים נוספים, השם לא יכול להיות זהה לשמות של מחזיקי מפתחות אחרים.
RUNTIMEDB_KEY_RING_NAME=YOUR_DB_KEY_RING_NAME
RUNTIMEDB_KEY_NAME=YOUR_DB_KEY_NAME - (אופציונלי) כדי לבדוק את העבודה, אפשר להציג את הערכים שהגדרתם. חשוב לזכור: כשרוצים להשתמש במשתנה בפקודות, צריך להוסיף לפני שם המשתנה סימן דולר ($).
echo $RUNTIMEDBKEY_LOCATION
echo $RUNTIMEDB_KEY_RING_NAMEecho $RUNTIMEDB_KEY_NAME - יצירת אוסף מפתחות חדש:
gcloud kms keyrings create $RUNTIMEDB_KEY_RING_NAME \ --location $RUNTIMEDBKEY_LOCATION --project $PROJECT_IDהמיקום של מפתח ההצפנה של מסד הנתונים של זמן הריצה של Apigee תומך בכל המיקומים של Cloud KMS שתומכים ב-Cloud HSM וב-Cloud EKM.
יוצרים מפתח:
gcloud kms keys create $RUNTIMEDB_KEY_NAME \ --keyring $RUNTIMEDB_KEY_RING_NAME \ --location $RUNTIMEDBKEY_LOCATION \ --purpose "encryption" \ --project $PROJECT_IDהפקודה הזו יוצרת את המפתח ומוסיפה אותו לאוסף המפתחות.
מאחזרים את מזהה המפתח:
gcloud kms keys list \ --location=$RUNTIMEDBKEY_LOCATION \ --keyring=$RUNTIMEDB_KEY_RING_NAME \ --project=$PROJECT_ID
תחביר מזהה המפתח (דומה לנתיב קובץ):
projects/PROJECT_ID/locations/RUNTIMEDBKEY_LOCATION/keyRings/RUNTIMEDB_KEY_RING_NAME/cryptoKeys/RUNTIMEDB_KEY_NAME
מכניסים את מזהה המפתח למשתנה סביבה. תשתמשו במשתנה הזה בפקודה מאוחרת יותר:
RUNTIMEDB_KEY_ID=YOUR_RUNTIMEDB_KEY_ID
מעניקים לסוכן השירות של Apigee גישה לשימוש במפתח החדש:
gcloud kms keys add-iam-policy-binding $RUNTIMEDB_KEY_NAME \ --location $RUNTIMEDBKEY_LOCATION \ --keyring $RUNTIMEDB_KEY_RING_NAME \ --member serviceAccount:service-$PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --project $PROJECT_ID
הפקודה הזו מקשרת את המפתח לסוכן השירות של Apigee.
אם הבקשה הזו תושלם בהצלחה,
gcloudישיב עם משהו דומה לזה:Updated IAM policy for key [runtime]. bindings: - members: - serviceAccount:service-1234567890@gcp-sa-apigee.iam.gserviceaccount.com role: roles/cloudkms.cryptoKeyEncrypterDecrypter etag: BwWqgEuCuwk= version: 1
אם מופיעה שגיאה כמו זו:
INVALID_ARGUMENT: Role roles/cloudkms.cryptokms.cryptoKeyEncrypterDecrypter is not supported for this resource.
חשוב לוודא שהשתמשתם במספר הפרויקט ולא בשם הפרויקט בכתובת האימייל של חשבון השירות.
-
- אם אתם משתמשים ב שמירת נתונים באזור מסוים, אתם צריכים ליצור אוסף מפתחות ומפתח להצפנת מישור הבקרה. אם אתם לא משתמשים במיקום הנתונים, עוברים אל שלב 3.
- מגדירים משתנה סביבה למיקום של טבעת ההצפנה ומפתח ההצפנה של מסד הנתונים במישור הבקרה:
CONTROL_PLANE_LOCATION=YOUR_CONTROL_PLANE_LOCATION
CONSUMER_DATA_REGION=YOUR_CONSUMER_DATA_REGIONכאשר:
- CONTROL_PLANE_LOCATION הוא המיקום הפיזי שבו יאוחסנו נתוני מישור הבקרה של Apigee. רשימת המיקומים הזמינים של מישור הבקרה מופיעה במאמר מיקומי Apigee.
- CONSUMER_DATA_REGION הוא אזור משנה של אזור מישור הבקרה. חובה לציין גם את CONTROL_PLANE_LOCATION וגם את CONSUMER_DATA_REGION. רשימת האזורים שבהם אפשר לאחסן נתונים של צרכנים זמינה במאמר בנושא מיקומי Apigee.
מגדירים משתני סביבה לאוספי מפתחות ולשמות מפתחות של מסד הנתונים של מישור הבקרה.
השם של מחזיק המפתחות צריך להיות ייחודי בארגון.
CONTROL_PLANE_KEY_RING_NAME=YOUR_CONTROL_PLANE_KEY_RING_NAME
CONTROL_PLANE_KEY_NAME=YOUR_CONTROL_PLANE_KEY_NAMECONSUMER_DATA_KEY_RING_NAME=YOUR_CONSUMER_DATA_KEY_RING_NAMECONSUMER_DATA_KEY_NAME=YOUR_CONSUMER_DATA_REGION_KEY_NAMEכאשר:
- CONTROL_PLANE_KEY_RING_NAME הוא השם של אוסף המפתחות שבו תשתמשו כדי לזהות את אוסף המפתחות להצפנת מישור הבקרה.
- CONTROL_PLANE_KEY_NAME הוא השם של המפתח שבו תשתמשו כדי לזהות את מפתח ההצפנה של מישור הבקרה.
- CONSUMER_DATA_KEY_RING_NAME הוא השם של אוסף המפתחות שבו תשתמשו כדי לזהות את אזור גיאוגרפי לאחסון נתונים של נתוני הצרכנים המוצפנים.
- CONSUMER_DATA_KEY_NAME הוא השם של המפתח שבו תשתמשו כדי לזהות את מפתח ההצפנה של אזור הנתונים שלכם.
- יצירת אוסף מפתחות חדש:
gcloud kms keyrings create $CONTROL_PLANE_KEY_RING_NAME \ --location $CONTROL_PLANE_LOCATION \ --project $PROJECT_ID
gcloud kms keyrings create $CONSUMER_DATA_KEY_RING_NAME \ --location $CONSUMER_DATA_REGION \ --project $PROJECT_ID
- יוצרים מפתח:
gcloud kms keys create $CONTROL_PLANE_KEY_NAME \ --keyring $CONTROL_PLANE_KEY_RING_NAME \ --location $CONTROL_PLANE_LOCATION \ --purpose "encryption" \ --project $PROJECT_ID
gcloud kms keys create $CONSUMER_DATA_KEY_NAME \ --keyring $CONSUMER_DATA_KEY_RING_NAME \ --location $CONSUMER_DATA_REGION \ --purpose "encryption" \ --project $PROJECT_ID
הפקודה הזו יוצרת את המפתח ומוסיפה אותו לאוסף המפתחות.
מאחזרים את מזהה המפתח:
gcloud kms keys list \ --location=$CONTROL_PLANE_LOCATION \ --keyring=$CONTROL_PLANE_KEY_RING_NAME \ --project=$PROJECT_ID
gcloud kms keys list \ --location=$CONSUMER_DATA_REGION \ --keyring=$CONSUMER_DATA_KEY_RING_NAME \ --project=$PROJECT_ID
תחביר מזהה המפתח (דומה לנתיב קובץ):
projects/PROJECT_ID/locations/CONTROL_PLANE_LOCATION/keyRings/CONTROL_PLANE_KEY_RING_NAME/cryptoKeys/CONTROL_PLANE_KEY_NAME
projects/PROJECT_ID/locations/CONSUMER_DATA_REGION/keyRings/CONSUMER_DATA_KEY_RING_NAME/cryptoKeys/CONSUMER_DATA_KEY_NAME
- מכניסים את מזהה המפתח למשתנה סביבה. תשתמשו במשתנה הזה בפקודה מאוחרת יותר:
CONTROL_PLANE_KEY_ID=YOUR_CONTROL_PLANE_KEY_ID
CONSUMER_DATA_KEY_ID=YOUR_CONSUMER_DATA_KEY_ID
- מעניקים לסוכן השירות של Apigee גישה לשימוש במפתח החדש:
gcloud kms keys add-iam-policy-binding $CONTROL_PLANE_KEY_NAME \ --location $CONTROL_PLANE_LOCATION \ --keyring $CONTROL_PLANE_KEY_RING_NAME \ --member "serviceAccount:service-$PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com" \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --project $PROJECT_ID
gcloud kms keys add-iam-policy-binding $CONSUMER_DATA_KEY_NAME \ --location $CONSUMER_DATA_REGION \ --keyring $CONSUMER_DATA_KEY_RING_NAME \ --member "serviceAccount:service-$PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com" \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --project $PROJECT_ID
הפקודה הזו מקשרת את המפתח לסוכן השירות של Apigee. אם הבקשה תושלם בהצלחה, gcloud ישיב בתגובה שדומה לתגובה הבאה:
Updated IAM policy for key [runtime]. bindings: - members: - serviceAccount:service-1234567890@gcp-sa-apigee.iam.gserviceaccount.com role: roles/cloudkms.cryptoKeyEncrypterDecrypter etag: BwWqgEuCuwk= version: 1
אם מופיעה שגיאה כמו זו:
INVALID_ARGUMENT: Role roles/cloudkms.cryptokms.cryptoKeyEncrypterDecrypter is not supported for this resource.
חשוב לוודא שהשתמשתם במספר הפרויקט ולא בשם הפרויקט בכתובת האימייל של חשבון השירות.
-
יוצרים את הארגון על ידי שליחת הבקשה הבאה אל organizations API של Apigee:
אין מיקום נתונים
curl "https://apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID" \ -H "Authorization: Bearer $AUTH" \ -X POST \ -H "Content-Type:application/json" \ -d '{ "name":"'"$PROJECT_ID"'", "analyticsRegion":"'"$ANALYTICS_REGION"'", "runtimeType":"CLOUD", "billingType":"'"$BILLING_TYPE"'", "disableVpcPeering":"true", "runtimeDatabaseEncryptionKeyName":"'"$RUNTIMEDB_KEY_ID"'" }'
כאשר:
-
-dמגדיר את מטען הנתונים של הבקשה. המטען הייעודי (payload) הזה חייב לכלול את הפרטים הבאים:
name: מזהה את הארגון החדש. השם צריך להיות זהה למזהה הפרויקט.
analyticsRegion: מציין את המיקום הפיזי שבו יישמרו נתוני הניתוח.runtimeType: מגדירים את הערך הזה ל-CLOUD.-
billingType: מציין את סוג החיוב של הארגון שנוצר. -
disableVpcPeering: מגדירים את הערךtrueאם לא רוצים להשתמש בקישור בין רשתות VPC שכנות (peering). ברירת מחדל:false -
runtimeDatabaseEncryptionKeyName: המזהה של מפתח ההצפנה של האפליקציה שיצרתם בשלב הקודם. חשוב לזכור שהמזהה בנוי כמו נתיב קובץ. לדוגמה:projects/my-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-key
המיקום של נתונים
יצירת ארגון באמצעות ה-API:
curl "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID" \ -H "Authorization: Bearer $AUTH" \ -X POST \ -H "Content-Type:application/json" \ -d '{ "name":"'"$PROJECT_ID"'", "runtimeType":"CLOUD", "billingType":"'"$BILLING_TYPE"'", "controlPlaneEncryptionKeyName":"'"$CONTROL_PLANE_KEY_ID"'", "apiConsumerDataLocation":"'"$CONSUMER_DATA_REGION"'", "apiConsumerDataEncryptionKeyName":"'"$CONSUMER_DATA_KEY_ID"'", "disableVpcPeering":"true", "runtimeDatabaseEncryptionKeyName":"'"$RUNTIMEDB_KEY_ID"'" }'כאשר:
-dמגדיר את מטען הנתונים של הבקשה. המטען הייעודי הזה חייב לכלול את הפרטים הבאים:-
name: מזהה את הארגון החדש. השם צריך להיות זהה למזהה הפרויקט. runtimeType: מגדירים את הערך הזה ל-CLOUD.-
billingType: מציין את סוג החיוב של הארגון שנוצר. -
controlPlaneEncryptionKeyName: מזהה המפתח של מישור הבקרה. -
apiConsumerDataLocation: צריך גם לציין אזור משנה לשימוש של משאבים פנימיים. במאמר בנושא אזורים שבהם הנתונים מאוחסנים מפורטים הערכים הנתמכים. -
apiConsumerDataEncryptionKeyName: מזהה המפתח של האזור הגיאוגרפי לאחסון נתונים של הצרכנים. -
disableVpcPeering: מגדירים את הערךtrueאם לא רוצים להשתמש בקישור בין רשתות VPC שכנות (peering). ברירת מחדל:false -
runtimeDatabaseEncryptionKeyName: המזהה של מפתח ההצפנה של האפליקציה שיצרתם בשלב הקודם. חשוב לזכור שהמזהה בנוי כמו נתיב קובץ. לדוגמה:
projects/my-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-key
אחרי שמריצים את הפקודה הזו, Apigee מתחיל פעולה ארוכת טווח, שיכולה להימשך כמה דקות.
אם מוצגת שגיאה, צריך לבדוק את השימוש במרכאות סביב ערכי המשתנים במטען ייעודי (payload). חשוב לוודא שמשתנה $PROJECT_ID מוקף במירכאות כפולות, מירכאות בודדות ומירכאות כפולות, כמו בדוגמה הבאה:
"'"$PROJECT_ID"'"
אם אתם משתמשים במחרוזות פשוטות (לא במשתני סביבה) לערכי הבקשה, אתם יכולים להוסיף אותן במירכאות כפולות בתוך מחרוזת המטען הייעודי (payload) במירכאות בודדות, כמו בדוגמה הבאה:
'{ "name":"my-gcp-project", ... }' -
- מחכים כמה דקות.
- כדי לבדוק את הסטטוס של בקשת היצירה, אפשר לשלוח בקשת
GETאל List organizations API של Apigee, כמו בדוגמה הבאה:אין מיקום נתונים
curl -H "Authorization: Bearer $AUTH" "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID"
המיקום של נתונים
curl -H "Authorization: Bearer $AUTH" "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID"
אם אתם רואים את התשובה הזו, סימן שיצירת הארגון עדיין לא הושלמה:
{ "error": { "code": 403, "message": "Permission denied on resource \"organizations/apigee-docs-m\" (or it may not exist)", "status": "PERMISSION_DENIED" } }אם הפעולה בוצעה ללא שגיאות, אובייקט התגובה יציין
"state": "ACTIVE", ואפשר לעבור לשלב הבא.אם Apigee מחזיר תגובת שגיאת HTTP, כדאי לעיין במאמר בנושא יצירת ארגון Apigee.
כדי ליצור אוסף מפתחות ומפתח להצפנת מישור הבקרה, פועלים לפי השלבים הבאים.
ראו גם: פתרון בעיות ב-CMEK.
שלב 5: יצירת מופע של זמן ריצה
בזמן הריצה, המערכת יוצרת מופע שבו מאוחסן פרויקט Apigee והשירותים שקשורים אליו. המופע הזה מספק את נקודת הקצה שפונה למשתמשים של השירותים שלכם. כדי ליצור מופע חדש של זמן ריצה:
-
בודקים ש-Apigee סיים ליצור את הארגון. שלחת בקשה ליצירת ארגון חדש, אבל צריך לוודא שהיא בוצעה לפני שממשיכים.
כדי לעשות את זה, שולחים את הבקשה הבאה אל organizations API:
אין מיקום נתונים
curl -i -H "Authorization: Bearer $AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID"המיקום של נתונים
curl -i -H "Authorization: Bearer $AUTH" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID"אם הארגון קיים (ויש לכם את ההרשאות המתאימות לצפייה בו), Apigee מגיב עם פרטים לגביו. אם Apigee מגיב בשגיאה, צריך להמתין כמה דקות ולשלוח את הבקשה שוב.
- בדומה למשימה הקודמת שבה יצרתם מפתח הצפנה למסד הנתונים, עכשיו אתם צריכים ליצור מפתח
Cloud KMS שמשמש להצפנת נתונים בצד השרת.
כדי להתחיל, מגדירים את משתני הסביבה הבאים:
INSTANCE_NAME=YOUR_INSTANCE_NAME
RUNTIME_LOCATION=YOUR_RUNTIME_LOCATIONDISK_KEY_RING_NAME=YOUR_DISK_KEY_RING_NAMEDISK_KEY_NAME=YOUR_DISK_KEY_NAME - INSTANCE_NAME: השם של המכונה החדשה. לדוגמה:
my-runtime-instance. השם חייב להתחיל באות קטנה באנגלית, יכול להיות באורך של עד 32 תווים, ויכול לכלול רק אותיות קטנות, מספרים ומקפים. הוא לא יכול להתחיל או להסתיים במקף, והוא צריך להיות באורך של שני תווים לפחות. - RUNTIME_LOCATION הוא המיקום הפיזי שבו האשכול מתארח.
הערכים התקינים הם כל מיקום שמותר ב-Compute Engine. (כאן אפשר לעיין ברשימת האזורים והתחומים שבהם אפשר להשתמש ב-Google Cloud). בדוגמה הזו נשתמש ב-
us-west1. - DISK_KEY_RING_NAME הוא השם של אוסף מפתחות ההצפנה של הדיסק.
- DISK_KEY_NAME הוא השם של מפתח ההצפנה של הדיסק.
- יוצרים מפתח להצפנת הדיסק:
- יוצרים אוסף מפתחות חדש לדיסק:
gcloud kms keyrings create $DISK_KEY_RING_NAME \ --location $RUNTIME_LOCATION \ --project $PROJECT_ID
אוסף מפתחות הדיסק צריך להיות מוגדר לאותו מיקום של המכונה. לכל מופע ולכל מחזיק מפתחות צריכים להיות מיקום משלהם.
- יוצרים מפתח דיסק חדש:
gcloud kms keys create $DISK_KEY_NAME \ --keyring $DISK_KEY_RING_NAME \ --location $RUNTIME_LOCATION \ --purpose "encryption" \ --project $PROJECT_ID
אפשר להפנות למפתח באמצעות נתיב המפתח. אפשר לקבל את נתיב המפתח באמצעות הפקודה הבאה:
gcloud kms keys list \ --location=$RUNTIME_LOCATION \ --keyring=$DISK_KEY_RING_NAME \ --project=$PROJECT_ID
נתיב המרות נראה בערך כך:
projects/PROJECT_ID/locations/RUNTIME_LOCATION/keyRings/my-disk-key-ring/cryptoKeys/my-disk-key
מציבים את נתיב המפתח במשתנה סביבה. תשתמשו במשתנה הזה בפקודה מאוחרת יותר:
DISK_KEY_ID=YOUR_DISK_KEY_ID
לדוגמה:
DISK_KEY_ID=projects/my-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-keyמעניקים לסוכן השירות של Apigee גישה לשימוש במפתח החדש:
gcloud kms keys add-iam-policy-binding $DISK_KEY_NAME \ --location $RUNTIME_LOCATION \ --keyring $DISK_KEY_RING_NAME \ --member serviceAccount:service-$PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --project $PROJECT_ID
הפקודה הזו מקשרת את המפתח לסוכן השירות של Apigee.
מידע נוסף זמין במאמר בנושא מפתחות ההצפנה של Apigee.
- יוצרים אוסף מפתחות חדש לדיסק:
- יוצרים מופע חדש של זמן ריצה לפרויקט על ידי שליחת בקשה אל Instances API של Apigee:
POSTאין מיקום נתונים
curl "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances" \ -X POST -H "Authorization: Bearer $AUTH" \ -H "Content-Type:application/json" \ -d '{ "name":"'"$INSTANCE_NAME"'", "location":"'"$RUNTIME_LOCATION"'", "diskEncryptionKeyName":"'"$DISK_KEY_ID"'", "consumerAcceptList":["'"$PROJECT_ID"'"] }'
המיקום של נתונים
curl "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances" \ -X POST -H "Authorization: Bearer $AUTH" \ -H "Content-Type:application/json" \ -d '{ "name":"'"$INSTANCE_NAME"'", "location":"'"$RUNTIME_LOCATION"'", "diskEncryptionKeyName":"'"$DISK_KEY_ID"'", "consumerAcceptList":["'"$PROJECT_ID"'"] }'כאשר:
-
consumerAcceptList(אופציונלי) מציין רשימה של מזהי פרויקטים ב-Google Cloud שיכולים להתחבר באופן פרטי ל שירות המצורף של ה-VPC של Apigee. צירוף שירות הוא ישות שמשמשת עם Private Service Connect של Google Cloud כדי לאפשר לספקי שירותים (במקרה הזה, Apigee) לחשוף שירותים לצרכנים (במקרה הזה, פרויקט אחד או יותר ב-Cloud שבבעלותכם). כברירת מחדל, אנחנו משתמשים בפרויקט בענן שכבר משויך לארגון Apigee שלכם. לדוגמה:"consumerAcceptList": ["project1", "project2", "project3"]שימו לב שאפשר גם להגדיר ולשנות את רשימת הפרויקטים המקובלים בממשק המשתמש של המופע. פרטים נוספים זמינים במאמר בנושא ניהול מופעים.
הבקשה הזו יכולה להימשך עד 20 דקות כי Apigee צריך ליצור ולהפעיל אשכול Kubernetes חדש, להתקין את משאבי Apigee באשכול הזה ולהגדיר איזון עומסים.
אם Apigee מחזיר שגיאה, אפשר לעיין במאמר בנושא יצירת מכונה חדשה.
-
כדי לבדוק את הסטטוס של הבקשה ליצירת מופע של זמן ריצה, מריצים את הפקודה הבאה. כשהסטטוס הוא פעיל, אפשר לעבור לשלב הבא.
אין מיקום נתונים
curl -i -X GET -H "Authorization: Bearer $AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances/$INSTANCE_NAME"המיקום של נתונים
curl -i -X GET -H "Authorization: Bearer $AUTH" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances/$INSTANCE_NAME"
כאשר:
שלב 6: יצירת סביבה
כדי ליצור סביבה ולצרף אותה לזמן הריצה בשורת הפקודה:
מגדירים משתני סביבה לשימוש בקטע הזה.
בסביבת מינוי, יוצרים את המשתנים הבאים:
ENVIRONMENT_NAME="YOUR_ENV_NAME"
ENV_GROUP_NAME="YOUR_ENV_GROUP_NAME"ENV_GROUP_HOSTNAME="YOUR_ENV_GROUP_HOSTNAME"כאשר:
-
ENVIRONMENT_NAMEהוא שם מחרוזת. לדוגמה:test -
ENV_GROUP_NAMEהוא שם מחרוזת. לדוגמה:test-group -
ENV_GROUP_HOSTNAMEהוא שם מארח דומיין תקין. לדוגמה:foo.example.com
-
- יוצרים סביבה חדשה באמצעות Environments API.
כדי ליצור סביבת מינוי חדשה, משתמשים בפקודה הבאה:
אין מיקום נתונים
curl "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments" \ -H "Authorization: Bearer $AUTH" \ -X POST \ -H "Content-Type:application/json" \ -d '{ "name":"'"$ENVIRONMENT_NAME"'" }'המיקום של נתונים
curl "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments" \ -H "Authorization: Bearer $AUTH" \ -X POST \ -H "Content-Type:application/json" \ -d '{ "name":"'"$ENVIRONMENT_NAME"'" }'מערכת Apigee יוצרת סביבה חדשה.
- לפני שממשיכים, צריך לוודא ש-Apigee סיים ליצור את הסביבה החדשה. לשם כך, קוראים ל-Environments API:
אין מיקום נתונים
curl -i -H "Authorization: Bearer $AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments"המיקום של נתונים
curl -i -H "Authorization: Bearer $AUTH" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments"Apigee מגיב עם רשימה של סביבות זמינות. לדוגמה, אם שם הסביבה הוא
test, התגובה של Apigee תהיה:[ "test" ]
- מצרפים את הסביבה החדשה למופע של זמן הריצה:
אין מיקום נתונים
curl "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances/$INSTANCE_NAME/attachments" \ -X POST -H "Authorization: Bearer $AUTH" \ -H "content-type:application/json" \ -d '{ "environment":"'"$ENVIRONMENT_NAME"'" }'המיקום של נתונים
curl "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances/$INSTANCE_NAME/attachments" \ -X POST -H "Authorization: Bearer $AUTH" \ -H "content-type:application/json" \ -d '{ "environment":"'"$ENVIRONMENT_NAME"'" }'הפעולה הזו יכולה להימשך כמה דקות. כדי לבדוק אם הצרוף הושלם, מריצים את הפקודה הבאה:
אין מיקום נתונים
curl -i -H "Authorization: Bearer $AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances/$INSTANCE_NAME/attachments"
המיקום של נתונים
curl -i -H "Authorization: Bearer $AUTH" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances/$INSTANCE_NAME/attachments"
אם הפלט נראה כך, אפשר לעבור לשלב הבא:
{ "attachments": [ { "name": "ed628782-c893-4095-b71c-f4731805290a", "environment": "test", "createdAt": "1641604447542" } ] } - יוצרים קבוצת סביבות חדשה באמצעות הפקודה הבאה. מידע נוסף זמין במאמר מידע על סביבות וקבוצות של סביבות.
אין מיקום נתונים
curl "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups" \ -H "Authorization: Bearer $AUTH" \ -X POST \ -H "Content-Type:application/json" \ -d '{ "name": "'"$ENV_GROUP_NAME"'", "hostnames":["'"$ENV_GROUP_HOSTNAME"'"] }'המיקום של נתונים
curl "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups" \ -H "Authorization: Bearer $AUTH" \ -X POST \ -H "Content-Type:application/json" \ -d '{ "name": "'"$ENV_GROUP_NAME"'", "hostnames":["'"$ENV_GROUP_HOSTNAME"'"] }' - ממתינים לסיום הפעולה. אפשר לבדוק את הסטטוס של הקבוצה החדשה באמצעות בקשה כמו הבקשה הבאה:
אין מיקום נתונים
curl -i -H "Authorization: Bearer $AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups/$ENV_GROUP_NAME"המיקום של נתונים
curl -i -H "Authorization: Bearer $AUTH" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups/$ENV_GROUP_NAME" - מצרפים את הסביבה החדשה לקבוצת הסביבות החדשה באמצעות הפקודה הבאה:
אין מיקום נתונים
curl "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups/$ENV_GROUP_NAME/attachments" \ -X POST \ -H "Authorization: Bearer $AUTH" \ -H "content-type:application/json" \ -d '{ "environment":"'"$ENVIRONMENT_NAME"'" }'המיקום של נתונים
curl "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups/$ENV_GROUP_NAME/attachments" \ -X POST \ -H "Authorization: Bearer $AUTH" \ -H "content-type:application/json" \ -d '{ "environment":"'"$ENVIRONMENT_NAME"'" }' - כדי לבדוק את סטטוס הפעולה, קוראים ל-API הזה:
אין מיקום נתונים
curl -H "Authorization: Bearer $AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups/$ENV_GROUP_NAME/attachments"המיקום של נתונים
curl -H "Authorization: Bearer $AUTH" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups/$ENV_GROUP_NAME/attachments"
שלב 7: הגדרת הניתוב
בשלב הזה מגדירים איך אפליקציות לקוח מתקשרות עם Apigee. תנועה מלקוח אל Apigee נקראת גם תנועה 'צפונית'. אפשרויות ההגדרה של Northbound כוללות את האפשרויות הבאות. עוברים לאפשרות ההגדרה שרוצים להשתמש בה ומבצעים את השלבים שמתאימים לאפשרות הזו:
| סוג הגישה | תיאור של תהליך ההגדרה והפריסה |
|---|---|
| פנימי עם Private Service Connect (חדש) |
אפשר לאפשר גישה פנימית בלבד לשרתי ה-proxy של ה-API מכל הפרויקטים שלכם ב-Google Cloud באמצעות Private Service Connect. Private Service Connect מאפשר חיבור פרטי בין בעלים של שירות מנוהל (Apigee) לבין צרכן השירות (פרויקט ה-VPC המקושר ו/או פרויקט אחד או יותר אחרים בענן שאתם שולטים בהם). בשיטה הזו, הבקשות עוברות דרך נקודת קצה של שירות או דרך מאזן עומסים פנימי אזורי לנקודת צירוף יחידה שנקראת צירוף שירות. ההגדרה הזו מאפשרת ללקוחות פנימיים לשלוח בקשות ל-proxy ל-API של Apigee מכל מכונה שמחוברת לרשת. |
| חיצוני עם Private Service Connect (חדש) |
מאפשרים גישה חיצונית לשרתי proxy של API באמצעות Private Service Connect. משתמשים ב-Private Service Connect כדי להפעיל חיבור פרטי בין בעלים של שירות מנוהל (Apigee) לבין צרכן השירות (פרויקט ה-VPC המקושר ו/או פרויקט בענן אחד או יותר שאתם שולטים בהם). בשיטה הזו, הבקשות עוברות דרך מאזן עומסים חיצוני גלובלי או מאזן עומסים חיצוני אזורי לנקודת צירוף יחידה שנקראת צירוף שירות. ההגדרה הזו מאפשרת לשלוח בקשות ל-proxy של Apigee API מכל מכונה שמחוברת לרשת. |
ההוראות שלמטה מתייחסות לכל אחת מהגישות האלה לניתוב.
ניתוב פנימי (Private Service Connect)
בקטע הזה מוסבר איך לאפשר גישה פנימית בלבד לשרתי proxy של API מכל הפרויקטים שלכם ב-Google Cloud באמצעות Private Service Connect.
יש שתי אפשרויות להגדרת גישה פנימית באמצעות Private Service Connect:
- נקודת קצה של שירות: הבקשות עוברות דרך נקודת קצה של שירות לנקודת צירוף יחידה שנקראת צירוף שירות.
- מאזן עומסים פנימי אזורי: הבקשות עוברות דרך מאזן עומסים פנימי אזורי מסוג HTTP(S). אפשר גם לקרוא על איזון עומסים גלובלי לעומת איזון עומסים אזורי.
בוחרים את הכרטיסייה שלמטה לפי ההגדרה הרצויה ופועלים לפי השלבים:
נקודת קצה של שירות
יצירת נקודת קצה של שירות Private Service Connect לקובץ המצורף עם השירות
- מקבלים את קובץ השירות מהמכונה שיצרתם קודם:
אין מיקום נתונים
curl -i -X GET -H "Authorization: Bearer $AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"
המיקום של נתונים
curl -i -X GET -H "Authorization: Bearer $AUTH" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"
בדוגמת הפלט הבאה, הערך
serviceAttachmentמוצג בכתב מודגש:{ "instances": [ { "name": "us-west1", "location": "us-west1", "createdAt": "1645731488019", "lastModifiedAt": "1646504754219", "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek", "state": "ACTIVE", "runtimeVersion": "1-7-0-20220228-190814", "consumerAcceptList": [ "my-project" ], "serviceAttachment": "projects/bfac74a67a320c43a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw1" } ] } - יוצרים נקודת קצה של שירות Private Service Connect שמפנה לקובץ המצורף עם השירות שקיבלתם מגוף התגובה של המופע בשלב הקודם, כמו שמוסבר במאמר יצירת נקודת קצה של Private Service Connect.
- הקצאת הרשאות ל-Apigee הושלמה. עוברים אל פריסת שרת proxy לדוגמה.
מאזן עומסים פנימי אזורי
שלב 7א: הגדרת משתני סביבה
ההוראות בקטע הזה משתמשות במשתני סביבה כדי להתייחס למחרוזות שמשמשות שוב ושוב. חשוב לוודא שהגדרתם את המשתנים בקטע הגדרת משתני סביבה.
בנוסף, מגדירים את משתני הסביבה הבאים:
NEG_NAME=YOUR_NEG_NAMENETWORK_NAME=YOUR_NETWORK_NAMESUBNET_NAME=YOUR_SUBNET_NAMETARGET_SERVICE=TARGET_SERVICE_ATTACHMENT
כאשר:
- NEG_NAME: שם לקבוצת נקודות הקצה ברשת.
- NETWORK_NAME: (אופציונלי) שם הרשת שבה נוצר ה-NEG. אם לא מציינים את הפרמטר הזה, נעשה שימוש ברשת של פרויקט
default. - SUBNET_NAME: שם רשת המשנה שמשמשת לקישוריות פרטית לבעלים של השירות המנוהל. גודל תת-הרשת יכול להיות קטן: ה-NEG של Private Service Connect צריך רק כתובת IP אחת מתת-הרשת. ב-Apigee, נדרש רק NEG אחד של Private Service Connect לכל אזור. אפשר לשתף את רשת המשנה ולהשתמש בה במכונות וירטואליות או בישויות אחרות. אם לא מציינים רשת משנה, נקודות קצה ברשת יכולות להיות שייכות לכל רשת משנה באזור שבו נוצרה קבוצת נקודות הקצה ברשת.
- TARGET_SERVICE: קובץ השירות שאליו רוצים להתחבר. לדוגמה:
projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7
שלב 7ב: יצירת רשת משנה לשרת proxy בלבד
gcloud compute networks subnets create testproxyonlysubnet \ --purpose=REGIONAL_MANAGED_PROXY --role=ACTIVE --region=$RUNTIME_REGION --network=$NETWORK_NAME \ --range=100.0.0.0/24 --project=$PROJECT_ID
שלב 7c: יצירת קבוצת נקודות קצה ברשת (NEG)
- מקבלים את קובץ השירות מהמכונה שיצרתם קודם:
אין מיקום נתונים
curl -i -X GET -H "Authorization: Bearer $AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"
המיקום של נתונים
curl -i -X GET -H "Authorization: Bearer $AUTH" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"
בדוגמת הפלט הבאה, הערך
serviceAttachmentמוצג בטקסט מודגש:{ "instances": [ { "name": "us-west1", "location": "us-west1", "createdAt": "1645731488019", "lastModifiedAt": "1646504754219", "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek", "state": "ACTIVE", "runtimeVersion": "1-7-0-20220228-190814", "consumerAcceptList": [ "my-project" ], "serviceAttachment": "projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7" } ] } יוצרים Private Service Connect NEG שמצביע על קובץ השירות שקיבלתם מגוף התגובה של המופע בשלב הקודם.
gcloud compute network-endpoint-groups create $NEG_NAME \ --network-endpoint-type=private-service-connect \ --psc-target-service=$TARGET_SERVICE \ --region=$RUNTIME_LOCATION \ --project=$PROJECT_ID --network=$NETWORK_NAME --subnet=$SUBNET_NAME
כאשר:
- $PROJECT_ID יכול להיות פרויקט בענן שכבר משויך לארגון Apigee שלכם, או פרויקט בענן שנכלל ב-
consumerAcceptlistכשנוצר מופע זמן הריצה של Apigee.
- $PROJECT_ID יכול להיות פרויקט בענן שכבר משויך לארגון Apigee שלכם, או פרויקט בענן שנכלל ב-
שלב 7ד: הגדרת מאזן עומסים פנימי אזורי
- שומרים כתובת IPv4 פנימית למאזן העומסים.
gcloud compute addresses create ADDRESS_NAME \ --ip-version=IPV4 --subnet=$SUBNET_NAME \ --region=$RUNTIME_LOCATION --project=$PROJECT_ID
מחליפים את ADDRESS_NAME בשם של משאב כתובת ה-IP.
מריצים את הפקודה הבאה כדי לראות את כתובת ה-IP השמורה:
gcloud compute addresses describe ADDRESS_NAME \ --format="get(address)" --region=$RUNTIME_LOCATION --project=$PROJECT_ID
- יוצרים שירות לקצה העורפי עבור ה-NEG.
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTPS \ --region=$RUNTIME_LOCATION \ --project=$PROJECT_ID
- מוסיפים את ה-NEG לשירות הקצה העורפי:
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=$NEG_NAME \ --region=$RUNTIME_LOCATION \ --project=$PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
- NEG_NAME: השם של קבוצת נקודות הקצה ברשת.
- BACKEND_SERVICE_NAME בשם של השירות לקצה העורפי.
-
כדי ליצור מאזן עומסים ב-HTTPS, צריך משאב של אישור SSL לשימוש בשרת ה-proxy של יעד HTTPS.
משתמשים בפקודה הזו כדי ליצור משאב של אישור SSL בניהול עצמי. כדי ליצור אישור SSL בניהול עצמי, צריך קובץ מפתח פרטי מקומי וקובץ אישור מקומי. אם אתם צריכים ליצור את הקבצים האלה, תוכלו לעיין בשלב 1 של השימוש באישורי SSL בניהול עצמי.
gcloud compute ssl-certificates create CERTIFICATE \ --certificate LB_CERT \ --private-key LB_PRIVATE_KEY --region=$RUNTIME_LOCATION --project=$PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
- CERTIFICATE: שם לאישור.
- LB_CERT: הנתיב לקובץ האישור בפורמט PEM של האישור בניהול עצמי.
- LB_PRIVATE_KEY: הנתיב לקובץ המפתח הפרטי בפורמט PEM של האישור בניהול עצמי.
-
יוצרים מפת URL למאזן העומסים.
מפת URL חייבת להפנות לשירות לקצה העורפי שמוגדר כברירת מחדל. מגדירים את שירות ה-Backend שיצרתם כברירת מחדל.
gcloud compute url-maps create URL_MAP_NAME \ --default-service=DEFAULT_BACKEND_SERVICE_NAME \ --region=$RUNTIME_REGION \ --project=$PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
- URL_MAP_NAME: שם למפת URL.
- DEFAULT_BACKEND_SERVICE_NAME: השם של שירות ברירת המחדל לקצה העורפי של מאזן העומסים. ברירת המחדל משמשת כשאין כלל מארח שתואם לשם המארח המבוקש.
-
משתמשים במשאב של אישור SSL כדי ליצור proxy יעד של HTTPS.
gcloud compute target-https-proxies create PROXY_NAME \ --url-map=URL_MAP_NAME \ --ssl-certificates=CERTIFICATE \ --region=$RUNTIME_LOCATION --project=$PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
- PROXY_NAME: שם ל-proxy ל-HTTPS עם יעד.
- URL_MAP_NAME: השם של מפת URL.
- CERTIFICATE: השם של משאב האישור.
- יוצרים את כלל ההעברה.
gcloud compute forwarding-rules create FWD_RULE \ --load-balancing-scheme=INTERNAL_MANAGED \ --address=ADDRESS_NAME \ --target-https-proxy=PROXY_NAME \ --ports=443 \ --target-https-proxy-region=$RUNTIME_REGION \ --region=$RUNTIME_REGION \ --project=$PROJECT_ID \ --network=$NETWORK_NAME \ --subnet=$SUBNET_NAME
מחליפים את מה שכתוב בשדות הבאים:
- FWD_RULE: שם לכלל ההעברה.
- ADDRESS_NAME: משאב כתובת ה-IP שהזמנתם לשימוש בכלל ההעברה.
- PROXY_NAME: השם של שרת ה-proxy ל-HTTPS של היעד.
- NETWORK_NAME: (אופציונלי) שם הרשת שבה נוצר ה-NEG. אם לא מציינים את הפרמטר הזה, נעשה שימוש ברשת של פרויקט
default. - SUBNET_NAME: שם רשת המשנה שמשמשת לקישוריות פרטית לבעלים של השירות המנוהל.
- הקצאת הרשאות ל-Apigee הושלמה. עוברים אל פריסת שרת proxy לדוגמה.
מחליפים את BACKEND_SERVICE_NAME בשם של שירות ה-Backend.
ניתוב חיצוני (Private Service Connect)
בקטע הזה מוסבר איך להגדיר ניתוב חיצוני באמצעות Private Service Connect כדי לאפשר תקשורת בין Apigee לבין רשתות VPC שאתם שולטים בהן. צריך לעשות את זה לפני ששולחים בקשה מלקוח חיצוני למופע זמן הריצה של Apigee.
שלב 7ב: יצירת NEG והגדרת מאזן העומסים
אפשר ליצור מאזן עומסים גלובלי או אזורי.
מאזן עומסים חיצוני גלובלי
הגדרת מאזן עומסים חיצוני גלובלי מסוג HTTP(S) (סכימת איזון העומסים מוגדרת לערך EXTERNAL_MANAGED).
למרות ש-NEG של Private Service Connect הוא אזורי, כל שאר רכיבי איזון העומסים בהגדרה הזו הם גלובליים.
- מוודאים שהגדרתם את משתני הסביבה לפי ההוראות שבמאמר הגדרה של משתני סביבה.
- מקבלים את קובץ השירות מהמכונה שיצרתם קודם:
אין מיקום נתונים
curl -i -X GET -H "Authorization: Bearer $AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"המיקום של נתונים
curl -i -X GET -H "Authorization: Bearer $AUTH" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"בדוגמת הפלט הבאה, הערך
serviceAttachmentמוצג בטקסט מודגש:{ "instances": [ { "name": "us-west1", "location": "us-west1", "host": "10.82.192.2", "port": "443", "createdAt": "1645731488019", "lastModifiedAt": "1646504754219", "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek", "state": "ACTIVE", "peeringCidrRange": "SLASH_22", "runtimeVersion": "1-7-0-20220228-190814", "ipRange": "10.82.192.0/22,10.82.196.0/28", "consumerAcceptList": [ "875609189304" ], "serviceAttachment": "projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7" } ] }
יוצרים Private Service Connect NEG שמפנה לקובץ המצורף עם השירות שקיבלתם מגוף התגובה של המופע בשלב הקודם.
gcloud compute network-endpoint-groups create NEG_NAME \ --network-endpoint-type=private-service-connect \ --psc-target-service=TARGET_SERVICE \ --region=$RUNTIME_LOCATION \ --network=NETWORK_NAME \ --subnet=SUBNET_NAME \ --project=$PROJECT_IDמחליפים את מה שכתוב בשדות הבאים:
- NEG_NAME: שם לקבוצת נקודות הקצה ברשת.
- TARGET_SERVICE: שירות ה-Attachment שרוצים להתחבר אליו. משתמשים בערך של קובץ השירות שמוחזר מהפקודה הקודמת. לדוגמה:
projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7 - NETWORK_NAME: (אופציונלי) שם הרשת שבה נוצר ה-NEG. אם לא מציינים את הפרמטר הזה, נעשה שימוש ברשת של פרויקט
default. - SUBNET_NAME: השם של תת-הרשת שמשמשת לקישוריות פרטית אל היצרן. גודל תת-הרשת יכול להיות קטן: ה-NEG של Private Service Connect צריך רק כתובת IP אחת מתת-הרשת. ב-Apigee, נדרש רק NEG אחד של Private Service Connect לכל אזור. אפשר לשתף את רשת המשנה ולהשתמש בה במכונות וירטואליות או בישויות אחרות. אם לא מציינים רשת משנה, יכול להיות שנקודות קצה ברשת ישתייכו לכל רשת משנה באזור שבו נוצרה קבוצת נקודות הקצה ברשת.
- $PROJECT_ID: פרויקט בענן שכבר משויך לארגון Apigee, או פרויקט בענן שנכלל ב-
consumerAcceptlistכשנוצר מופע זמן הריצה של Apigee. אם עדיין לא עשיתם את זה, כדאי ליצור משתנה סביבה שיכיל את מזהה הפרויקט, כי הוא נמצא בשימוש ברוב הפקודות הבאות.
- שומרים כתובת IPv4 חיצונית גלובלית למאזן העומסים.
gcloud compute addresses create ADDRESS_NAME \ --ip-version=IPV4 --global --project=$PROJECT_IDמחליפים את ADDRESS_NAME בשם של משאב כתובת ה-IP.
מריצים את הפקודה הבאה כדי לראות את כתובת ה-IP השמורה:
gcloud compute addresses describe ADDRESS_NAME \ --format="get(address)" --global --project=$PROJECT_ID - יוצרים שירות לקצה העורפי עבור ה-NEG.
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTPS \ --global --project=$PROJECT_ID - מוסיפים את ה-NEG לשירות לקצה העורפי.
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --network-endpoint-group-region=REGION \ --global --project=$PROJECT_IDמחליפים את מה שכתוב בשדות הבאים:
- BACKEND_SERVICE_NAME: השם של שירות הקצה העורפי.
- NEG_NAME: השם של קבוצת נקודות הקצה ברשת.
- REGION: האזור של קבוצת נקודות הקצה ברשת.
יוצרים מפת URL למאזן העומסים.
מפת URL חייבת להפנות לשירות לקצה העורפי שמוגדר כברירת מחדל. מגדירים את שירות ה-Backend שיצרתם כברירת מחדל.
gcloud compute url-maps create URL_MAP_NAME \ --default-service=DEFAULT_BACKEND_SERVICE_NAME \ --global --project=$PROJECT_IDמחליפים את מה שכתוב בשדות הבאים:
- URL_MAP_NAME: שם למפת URL.
- DEFAULT_BACKEND_SERVICE_NAME: השם של שירות ברירת המחדל לקצה העורפי של מאזן העומסים. ברירת המחדל משמשת כשאין כלל מארח שתואם לשם המארח המבוקש.
יוצרים את שרת ה-proxy של HTTPS ליעד.
כדי ליצור מאזן עומסים ב-HTTPS, צריך משאב של אישור SSL לשימוש בשרת ה-proxy של יעד HTTPS. אפשר ליצור משאב של אישור SSL באמצעות אישור SSL בניהול Google או אישור SSL בניהול עצמי. מומלץ להשתמש באישורים שמנוהלים על ידי Google, כי Google Cloud מקבלת, מנהלת ומחדשת את האישורים האלה באופן אוטומטי.
כדי ליצור אישור שמנוהל על ידי Google, צריך להיות לכם דומיין.
משתמשים בפקודה הזו כדי ליצור משאב של אישור SSL בניהול Google:
gcloud compute ssl-certificates create CERTIFICATE \ --domains DOMAIN --project=$PROJECT_IDמחליפים את מה שכתוב בשדות הבאים:
- CERTIFICATE: שם לאישור.
- DOMAIN: שם הדומיין של מאזן העומסים.
משתמשים בפקודה הזו כדי ליצור משאב של אישור SSL בניהול עצמי. כדי ליצור אישור SSL בניהול עצמי, צריך קובץ מפתח פרטי מקומי וקובץ אישור מקומי. אם אתם צריכים ליצור את הקבצים האלה, תוכלו לעיין בשלב 1 של השימוש באישורי SSL בניהול עצמי.
gcloud compute ssl-certificates create CERTIFICATE \ --certificate LB_CERT \ --private-key LB_PRIVATE_KEY --project=$PROJECT_IDמחליפים את מה שכתוב בשדות הבאים:
- CERTIFICATE: שם לאישור.
- LB_CERT: הנתיב לקובץ האישור בפורמט PEM של האישור בניהול עצמי.
- LB_PRIVATE_KEY: הנתיב לקובץ המפתח הפרטי בפורמט PEM של האישור בניהול עצמי.
משתמשים במשאב של אישור SSL כדי ליצור proxy יעד של HTTPS.
gcloud compute target-https-proxies create PROXY_NAME \ --url-map=URL_MAP_NAME \ --ssl-certificates=CERTIFICATE --project=$PROJECT_IDמחליפים את מה שכתוב בשדות הבאים:
- PROXY_NAME: שם ל-proxy ל-HTTPS עם יעד.
- URL_MAP_NAME: השם של מפת URL.
- CERTIFICATE: השם של משאב האישור.
- יוצרים את כלל ההעברה.
gcloud compute forwarding-rules create FWD_RULE \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=PREMIUM \ --address=ADDRESS_NAME \ --target-https-proxy=PROXY_NAME \ --ports=443 \ --global --project=$PROJECT_IDמחליפים את מה שכתוב בשדות הבאים:
- FWD_RULE: שם לכלל ההעברה.
- ADDRESS_NAME: משאב כתובת ה-IP שהזמנתם לשימוש בכלל ההעברה.
- PROXY_NAME: השם של שרת ה-proxy ל-HTTPS של היעד.
מחליפים את BACKEND_SERVICE_NAME בשם של שירות ה-Backend.
מאזן עומסים חיצוני אזורי
הגדרת מאזן עומסים חיצוני אזורי מסוג HTTP(S). מידע נוסף סקירה כללית על מאזן עומסים חיצוני מסוג HTTP(S)
- חשוב לוודא שהגדרתם את המשתנים בקטע הגדרת משתני סביבה.
- יוצרים תת-רשת של שרת proxy בלבד:
gcloud compute networks subnets create SUBNET_NAME \ --purpose=REGIONAL_MANAGED_PROXY --role=ACTIVE \ --region=$RUNTIME_LOCATION --network=NETWORK_NAME \ --range=100.0.0.0/24 --project=$PROJECT_IDמחליפים את מה שכתוב בשדות הבאים:
- SUBNET_NAME: שם רשת המשנה.
- (Optional) NETWORK_NAME: שם הרשת שבה נוצרת רשת המשנה. אם לא מציינים את הפרמטר הזה, נעשה שימוש ברשת הפרויקט שמוגדרת כברירת מחדל.
- מקבלים את קובץ השירות מהמכונה שיצרתם קודם:
אין מיקום נתונים
curl -i -X GET -H "Authorization: Bearer $AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"המיקום של נתונים
curl -i -X GET -H "Authorization: Bearer $AUTH" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"בדוגמת הפלט הבאה, הערך
serviceAttachmentמוצג בטקסט מודגש:{ "instances": [ { "name": "us-west1", "location": "us-west1", "host": "10.82.192.2", "port": "443", "createdAt": "1645731488019", "lastModifiedAt": "1646504754219", "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek", "state": "ACTIVE", "peeringCidrRange": "SLASH_22", "runtimeVersion": "1-7-0-20220228-190814", "ipRange": "10.82.192.0/22,10.82.196.0/28", "consumerAcceptList": [ "875609189304" ], "serviceAttachment": "projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7" } ] }
- יוצרים קבוצת נקודות קצה ברשת.
gcloud compute network-endpoint-groups create NEG_NAME \ --network-endpoint-type=private-service-connect \ --psc-target-service=TARGET_SERVICE \ --region=$RUNTIME_LOCATION --project=$PROJECT_IDמחליפים את מה שכתוב בשדות הבאים:
- NEG_NAME: השם של קבוצת נקודות הקצה ברשת.
- TARGET_SERVICE: השם של קובץ השירות שאליו רוצים להתחבר.
לדוגמה:
projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7
- יוצרים שירות לקצה העורפי עבור ה-NEG.
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTPS \ --region=$RUNTIME_LOCATION \ --project=$PROJECT_ID
- מוסיפים את ה-NEG לשירות לקצה העורפי.
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --region=$RUNTIME_LOCATION \ --project=$PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
- BACKEND_SERVICE_NAME: השם של שירות הקצה העורפי.
- NEG_NAME: השם של קבוצת נקודות הקצה ברשת.
יוצרים מפת URL למאזן העומסים.
מפת URL חייבת להפנות לשירות לקצה העורפי שמוגדר כברירת מחדל. מגדירים את שירות ה-Backend שיצרתם כברירת מחדל.
gcloud compute url-maps create URL_MAP_NAME \ --default-service=DEFAULT_BACKEND_SERVICE_NAME \ --region=$RUNTIME_LOCATION \ --project=$PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
- URL_MAP_NAME: שם למפת URL.
- DEFAULT_BACKEND_SERVICE_NAME: השם של שירות ברירת המחדל לקצה העורפי של מאזן העומסים. ברירת המחדל משמשת כשאין כלל מארח שתואם לשם המארח המבוקש.
יוצרים את שרת ה-proxy של HTTPS ליעד.
כדי ליצור מאזן עומסים ב-HTTPS, צריך משאב של אישור SSL לשימוש בשרת ה-proxy של יעד HTTPS.
משתמשים בפקודה הזו כדי ליצור משאב של אישור SSL בניהול עצמי. כדי ליצור אישור SSL בניהול עצמי, צריך קובץ מפתח פרטי מקומי וקובץ אישור מקומי. אם אתם צריכים ליצור את הקבצים האלה, תוכלו לעיין בשלב 1 של השימוש באישורי SSL בניהול עצמי.
gcloud compute ssl-certificates create CERTIFICATE \ --certificate LB_CERT \ --private-key LB_PRIVATE_KEY --region=$RUNTIME_LOCATION \ --project=$PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
- CERTIFICATE: שם לאישור.
- LB_CERT: הנתיב לקובץ האישור בפורמט PEM של האישור בניהול עצמי.
- LB_PRIVATE_KEY: הנתיב לקובץ המפתח הפרטי בפורמט PEM של האישור בניהול עצמי.
משתמשים במשאב של אישור SSL כדי ליצור proxy יעד של HTTPS.
gcloud compute target-https-proxies create PROXY_NAME \ --url-map=URL_MAP_NAME --region=$RUNTIME_LOCATION \ --ssl-certificates=CERTIFICATE --project=$PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
- PROXY_NAME: שם ל-proxy ל-HTTPS עם יעד.
- URL_MAP_NAME: השם של מפת URL.
- CERTIFICATE: השם של משאב האישור.
- שמירת כתובת חיצונית אזורית למאזן העומסים. הערה: צריך להגדיר את רמת הרשת ל-
STANDARD.gcloud compute addresses create ADDRESS_NAME \ --region=$RUNTIME_LOCATION --network-tier=STANDARD \ --project=$PROJECT_IDמחליפים את ADDRESS_NAME בשם של משאב כתובת ה-IP.
מריצים את הפקודה הבאה כדי לראות את כתובת ה-IP השמורה:
gcloud compute addresses describe ADDRESS_NAME \ --format="get(address)" --region=$RUNTIME_LOCATION \ --project=$PROJECT_ID - יוצרים את כלל ההעברה.
gcloud compute forwarding-rules create FWD_RULE \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=STANDARD \ --address=ADDRESS_NAME \ --target-https-proxy=PROXY_NAME \ --ports=443 --region=$RUNTIME_LOCATION \ --target-https-proxy-region=$RUNTIME_LOCATION --project=$PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
- FWD_RULE: שם לכלל ההעברה.
- ADDRESS_NAME: משאב כתובת ה-IP שהזמנתם לשימוש בכלל ההעברה.
- PROXY_NAME: השם של שרת ה-proxy ל-HTTPS של היעד.
מחליפים את BACKEND_SERVICE_NAME בשם של שירות ה-Backend.
הקצאת הרשאות ל-Apigee הושלמה. עוברים אל פריסת שרת proxy לדוגמה.
שלב 8: פריסת שרת proxy לדוגמה
- מורידים את הפרוקסי לדוגמה מ-GitHub. יעד ה-proxy הוא השירות httpbin.org, שהוא שירות ציבורי נפוץ לבקשות ותגובות.
- מעלים את חבילת ה-proxy ל-API לסביבת זמן הריצה באמצעות Apigee
apisAPI:אין מיקום נתונים
curl -i -X POST -H "Authorization: Bearer $AUTH" \ -H "Content-Type:multipart/form-data" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/apis?name=httpbin&action=import" \ -F 'file=@PATH_TO_ZIP_FILE/httpbin_rev1_2020_02_02.zip'המיקום של נתונים
curl -i -X POST -H "Authorization: Bearer $AUTH" \ -H "Content-Type:multipart/form-data" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/apis?name=httpbin&action=import" \ -F 'file=@PATH_TO_ZIP_FILE/httpbin_rev1_2020_02_02.zip'PATH_TO_ZIP_FILE הוא הנתיב לספרייה שמכילה את קובץ ה-ZIP שהורד.
-
פריסת ה-API Proxy בסביבה שיצרתם קודם:
אין מיקום נתונים
curl -i -H "Authorization: Bearer $AUTH" -X POST \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments/$ENVIRONMENT_NAME/apis/httpbin/revisions/1/deployments"המיקום של נתונים
curl -i -H "Authorization: Bearer $AUTH" -X POST \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments/$ENVIRONMENT_NAME/apis/httpbin/revisions/1/deployments" - כדי לוודא שהפריסה הסתיימה בהצלחה, מריצים את קריאת ה-API הבאה:
אין מיקום נתונים
curl -i -H "Authorization: Bearer $AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments/$ENVIRONMENT_NAME/apis/httpbin/revisions/1/deployments"המיקום של נתונים
curl -i -H "Authorization: Bearer $AUTH" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments/$ENVIRONMENT_NAME/apis/httpbin/revisions/1/deployments" קוראים ל-proxy ל-API:
כדי לשלוח בקשה ל-proxy ל-API מכל מכונה שמחוברת לרשת, מריצים את הפקודה הבאה:
curl -i -H "Host: ENV_GROUP_HOSTNAME" \ "https://ENV_GROUP_HOSTNAME/httpbin/headers"במקרה הצורך, אפשר להשתמש ב-API הזה כדי לקבל את הערך ENV_GROUP_HOSTNAME:
אין מיקום נתונים
curl -i -H "Authorization: Bearer $AUTH" \ "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups"המיקום של נתונים
curl -i -H "Authorization: Bearer $AUTH" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups"אם מופיעה שגיאה כמו:
CONNECT_CR_SRVR_HELLO:sslv3 alert handshake failure, צריך לוודא שאישור ה-SSL שיצרתם קודם הוקצה. משתמשים בפקודה הזו כדי לבדוק את סטטוס ההקצאה. כשמוקצה אישור, הסטטוס שלו הואACTIVE.gcloud compute ssl-certificates describe CERTIFICATE \ --global \ --format="get(name,managed.status, managed.Status)"אם הפעולה מצליחה, ה-proxy ל-API לדוגמה מחזיר תגובה שדומה לזו:
{ "headers": { "Accept": "*/*", "Grpc-Trace-Bin": "AAD/8WC/I4AUSrMEch0E9yj+AYck1x9afwckAgA", "Host": "httpbin.org", "Traceparent": "00-fff160bf2380144ab304721d04f728fe-8724d71f5a7f0724-00", "User-Agent": "curl/7.77.0", "X-Amzn-Trace-Id": "Root=1-61d785ef-7613aa8a7fde7a910441fab9", "X-B3-Sampled": "0", "X-B3-Spanid": "8724d71f5a7f0724", "X-B3-Traceid": "fff160bf2380144ab304721d04f728fe", "X-Cloud-Trace-Context": "fff160bf2380144ab304721d04f728fe/9738144823944087332;o=0", "X-Envoy-Attempt-Count": "1" } }
מידע נוסף על פריסת שרתי proxy, כולל מידע נוסף על פתרון בעיות, זמין במאמר פריסת proxy ל-API.