הדף הזה מתייחס ל-Apigee, אבל לא ל-Apigee Hybrid.
לעיון במסמכי התיעוד של
Apigee Edge
במאמר הזה מוסבר איך להתקין ולהגדיר את Apigee משורת הפקודה בלי שימוש ב-VPC peering. השלבים האלה רלוונטיים גם למודלים של מינוי וגם למודלים של תשלום לפי שימוש בארגונים בתשלום, עם או בלי הפעלה של מיקום אחסון הנתונים.
אפשר לעיין גם במאמר אפשרויות הקצאת הרשאות.מגבלות
לאפשרות ההתקנה של קישור בין רשתות VPC שמתוארת במסמך הזה יש כמה מגבלות:
- אין תמיכה ב- VPC Service Controls.
רשימה מלאה של התכונות וגישות הרשת שנתמכות ושלא נתמכות בחיבור בין רשתות שאינן VPC זמינה במאמר איך בוחרים אפשרות רשת.
סיכום השלבים
אלה השלבים להקצאת הרשאות:
- שלב 1: הגדרת משתני סביבה:
מגדירים את
gcloudומגדירים משתני סביבה. הכלי Google Cloud CLI מנהל את האימות, ההגדרות המקומיות, תהליך העבודה של המפתחים והאינטראקציות עם Google Cloud APIs. - שלב 2: הפעלת ממשקי API: כדי להשתמש ב-Apigee, צריך להפעיל כמה ממשקי Google Cloud API.
- שלב 3: יוצרים את זהות השירות של Apigee: חשבון השירות הזה משמש את ספריות הלקוח של Google Cloud לאימות מול Cloud APIs.
- שלב 4: יצירת ארגון: ארגון Apigee (לפעמים נקרא org) הוא המאגר ברמה העליונה ב-Apigee. הוא כולל את כל הסביבות וקבוצות הסביבות, המשתמשים, פרוקסי של API ומשאבים קשורים.
- שלב 5: יצירת מופע של זמן ריצה: מופע או זמן ריצה הם המקום שבו הפרויקט והשירותים שקשורים אליו מאוחסנים. הם מספקים את נקודת הקצה שפונה למשתמשים של השירותים שלכם.
- שלב 6: יצירת סביבה: צריך לפרוס proxy ל-API בסביבה ולהוסיף אותו לקבוצת סביבות כדי שה-API שהוא חושף יהיה נגיש ברשת.
- שלב 7: הגדרת ניתוב: מאפשרים גישה חיצונית או גישה פנימית בלבד ל-API.
- שלב 8: פריסת proxy לדוגמה ל-API: כדי לבדוק את הקצאת ההרשאות, פורסים proxy ל-API ומבצעים קריאה אליו.
שלב 1: הגדרת משתני סביבה
מגדירים את gcloud ומגדירים משתני סביבה לשימוש בשלבים הבאים:
- חשוב לוודא שביצעתם את דרישות ההגדרה שמפורטות בקטע לפני שמתחילים.
- צריך לוודא ש-Cloud SDK מותקן. אם אתם צריכים להתקין אותו, תוכלו לעיין במאמר בנושא התקנת Cloud SDK.
- מאתחלים את Cloud SDK, כמו שמתואר במאמר אתחול ה-CLI של gcloud, או מוודאים שהפרויקט ב-Google Cloud שיצרתם בקטע דרישות מוקדמות הוא פרויקט ברירת המחדל עבור
gcloud. - מגדירים את משתני הסביבה הבאים בטרמינל של הפקודה.
בוחרים את הכרטיסייה שמתאימה לסוג הארגון שרוצים:
ללא מיקום אחסון הנתונים או עם
מיקום אחסון הנתונים:
אין מיקום אחסון נתונים
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 מגדיר את הכותרת
Authenticationעם טוקן Bearer. תשתמשו בכותרת הזו כשתיגשו לממשקי 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 מגדיר את הכותרת
Authenticationעם טוקן Bearer. תשתמשו בכותרת הזו כשתיגשו לממשקי 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למינוי Subscription.
-
-
השדה AUTH מגדיר את הכותרת
- (אופציונלי) כדי לבדוק את העבודה, אפשר להציג את הערכים שהגדרתם זה עתה. שימו לב: כשרוצים להשתמש במשתנה בפקודות, צריך להוסיף לפני שם המשתנה סימן דולר ($).
אין מיקום אחסון נתונים
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=YOUR_RUNTIMEDBKEY_LOCATION
הערך יכול להיות זהה לערך של $RUNTIME_LOCATION (גם הוא אזור), אבל הוא לא חייב להיות זהה. עם זאת, יכול להיות שיהיה שיפור בביצועים אם הם יהיו זהים.
במספר אזורים
הגדרות של מספר אזורים: בוחרים מתוך המיקומים הנתמכים במספר אזורים (למשל
usאוeurope) או המיקומים הנתמכים בשני אזורים.לדוגמה:
RUNTIMEDBKEY_LOCATION=YOUR_RUNTIMEDBKEY_LOCATION
אם יש לכם הגדרה של מספר אזורים בארה"ב, מומלץ להשתמש ב-
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/PROJECT_ID/locations/YOUR_RUNTIMEDBKEY_LOCATION/keyRings/YOUR_DB_KEY_RING_NAME/cryptoKeys/YOUR_DB_KEY_NAME
המיקום של נתונים
יצירת ארגון באמצעות ה-API:
curl "https://REGIONAL_ENDPOINT/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"'" }'כאשר:
- REGIONAL_ENDPOINT היא נקודת הקצה האזורית שנדרשת לתמיכה במיקום אחסון הנתונים.
-
-dמגדיר את מטען הנתונים של הבקשה. ה-payload צריך לכלול את הפרטים הבאים:-
name: מזהה את הארגון החדש. השם צריך להיות זהה למזהה הפרויקט. runtimeType: מגדירים את הערך הזה ל-CLOUD.-
billingType: מציין את סוג החיוב של הארגון שנוצר. -
controlPlaneEncryptionKeyName: מזהה המפתח של מישור הבקרה. -
apiConsumerDataLocation: צריך גם לציין אזור משנה לשימוש של משאבים פנימיים. ראו אזורי מיקום אחסון הנתונים לקבלת הערכים הנתמכים. -
apiConsumerDataEncryptionKeyName: המזהה של המפתח לאזור הנתונים של הצרכן. -
disableVpcPeering: מגדירים את הערךtrueאם לא רוצים להשתמש בקישור בין רשתות VPC שכנות (peering). ברירת מחדל:false -
runtimeDatabaseEncryptionKeyName: המזהה של מפתח ההצפנה של האפליקציה שיצרתם בשלב הקודם. כדאי לזכור שהמזהה בנוי כמו נתיב קובץ. לדוגמה:
projects/your-project/locations/your_runtime_db_key_location/keyRings/your-key-ring/cryptoKeys/your-key
-
אחרי שמריצים את הפקודה הזו, Apigee מתחיל פעולה ארוכת טווח, שיכולה להימשך כמה דקות.
אם מוצגת שגיאה, צריך לבדוק את השימוש במרכאות סביב ערכי המשתנים במטען הנתונים. חשוב לוודא שמשתנה $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://REGIONAL_ENDPOINT/v1/organizations/$PROJECT_ID"
REGIONAL_ENDPOINT הוא נקודת הקצה האזורית שנדרשת כדי לתמוך במיקום אחסון הנתונים.
אם התשובה הזו מופיעה, סימן שיצירת הארגון עדיין לא הושלמה:
{ "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://REGIONAL_ENDPOINT/v1/organizations/$PROJECT_ID"REGIONAL_ENDPOINT הוא נקודת הקצה האזורית שנדרשת כדי לתמוך במיקום אחסון הנתונים.
אם הארגון קיים (ויש לכם את ההרשאות המתאימות לצפייה בו), 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. (ראו אזורים ותחומים זמינים). בדוגמה הזו נשתמש ב-
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.
- יוצרים אוסף מפתחות חדש לדיסק:
- יוצרים מופע חדש של סביבת זמן ריצה לפרויקט על ידי שליחת בקשה אל
POSTInstances API של Apigee:אין מיקום אחסון נתונים
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://REGIONAL_ENDPOINT/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"'"] }'REGIONAL_ENDPOINT הוא נקודת הקצה האזורית שנדרשת כדי לתמוך במיקום אחסון הנתונים.
כאשר:
-
consumerAcceptList(אופציונלי) מציין רשימה של מזהי פרויקטים בענן של Google שיכולים להתחבר באופן פרטי ל שירות המצורף של ה-VPC של Apigee. קובץ מצורף של שירות הוא ישות שמשמשת עם Private Service Connect של Google Cloud כדי לאפשר לספקי שירותים (במקרה הזה, Apigee) לחשוף שירותים לצרכנים (במקרה הזה, פרויקט אחד או יותר ב-Cloud שבבעלותכם). כברירת מחדל, אנחנו משתמשים בפרויקט בענן שכבר משויך לארגון Apigee שלכם. לדוגמה:"consumerAcceptList": ["project1", "project2", "project3"]שימו לב שאפשר גם להגדיר ולשנות את רשימת הפרויקטים שאושרו בממשק המשתמש של המופע. פרטים נוספים זמינים במאמר בנושא ניהול מופעים.
הבקשה הזו יכולה להימשך עד 20 דקות כי מערכת Apigee צריכה ליצור ולהפעיל אשכול Kubernetes חדש, להתקין את משאבי Apigee באשכול הזה ולהגדיר איזון עומסים.
אם Apigee מחזיר שגיאה, אפשר לעיין במאמר בנושא יצירת מופע חדש.
-
כדי לבדוק את הסטטוס של הבקשה ליצירת מופע של זמן ריצה, מריצים את הפקודה הבאה. כשהסטטוס הוא ACTIVE, אפשר לעבור לשלב הבא.
אין מיקום אחסון נתונים
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://REGIONAL_ENDPOINT/v1/organizations/$PROJECT_ID/instances/$INSTANCE_NAME"REGIONAL_ENDPOINT הוא נקודת הקצה האזורית שנדרשת כדי לתמוך במיקום אחסון הנתונים.
כאשר:
שלב 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://REGIONAL_ENDPOINT/v1/organizations/$PROJECT_ID/environments" \ -H "Authorization: Bearer $AUTH" \ -X POST \ -H "Content-Type:application/json" \ -d '{ "name":"'"$ENVIRONMENT_NAME"'" }'REGIONAL_ENDPOINT הוא נקודת הקצה האזורית שנדרשת כדי לתמוך במיקום אחסון הנתונים.
מערכת 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://REGIONAL_ENDPOINT/v1/organizations/$PROJECT_ID/environments"REGIONAL_ENDPOINT הוא נקודת הקצה האזורית שנדרשת כדי לתמוך במיקום אחסון הנתונים.
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://REGIONAL_ENDPOINT/v1/organizations/$PROJECT_ID/instances/$INSTANCE_NAME/attachments" \ -X POST -H "Authorization: Bearer $AUTH" \ -H "content-type:application/json" \ -d '{ "environment":"'"$ENVIRONMENT_NAME"'" }'REGIONAL_ENDPOINT הוא נקודת הקצה האזורית שנדרשת כדי לתמוך במיקום אחסון הנתונים.
הפעולה הזו יכולה להימשך כמה דקות. כדי לבדוק אם הצירוף הושלם, מריצים את הפקודה הבאה:
אין מיקום אחסון נתונים
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://REGIONAL_ENDPOINT/v1/organizations/$PROJECT_ID/instances/$INSTANCE_NAME/attachments"
REGIONAL_ENDPOINT הוא נקודת הקצה האזורית שנדרשת כדי לתמוך במיקום אחסון הנתונים.
אם הפלט נראה כך, אפשר לעבור לשלב הבא:
{ "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://REGIONAL_ENDPOINT/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"'"] }'REGIONAL_ENDPOINT הוא נקודת הקצה האזורית שנדרשת כדי לתמוך במיקום אחסון הנתונים.
- ממתינים לסיום הפעולה. אפשר לבדוק את הסטטוס של הקבוצה החדשה באמצעות בקשה כמו הבקשה הבאה:
אין מיקום אחסון נתונים
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://REGIONAL_ENDPOINT/v1/organizations/$PROJECT_ID/envgroups/$ENV_GROUP_NAME"REGIONAL_ENDPOINT הוא נקודת הקצה האזורית שנדרשת כדי לתמוך במיקום אחסון הנתונים.
- מצרפים את הסביבה החדשה לקבוצת הסביבות החדשה באמצעות הפקודה הבאה:
אין מיקום אחסון נתונים
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://REGIONAL_ENDPOINT/v1/organizations/$PROJECT_ID/envgroups/$ENV_GROUP_NAME/attachments" \ -X POST \ -H "Authorization: Bearer $AUTH" \ -H "content-type:application/json" \ -d '{ "environment":"'"$ENVIRONMENT_NAME"'" }'REGIONAL_ENDPOINT הוא נקודת הקצה האזורית שנדרשת כדי לתמוך במיקום אחסון הנתונים.
- כדי לבדוק את סטטוס הפעולה, קוראים ל-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://REGIONAL_ENDPOINT/v1/organizations/$PROJECT_ID/envgroups/$ENV_GROUP_NAME/attachments"REGIONAL_ENDPOINT הוא נקודת הקצה האזורית שנדרשת כדי לתמוך במיקום אחסון הנתונים.
שלב 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 ל-API של Apigee מכל מכונה שמחוברת לרשת. |
ההוראות שבהמשך מתייחסות לכל אחת מהגישות האלה לניתוב.
ניתוב פנימי (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://REGIONAL_ENDPOINT/v1/organizations/$PROJECT_ID/instances"
REGIONAL_ENDPOINT הוא נקודת הקצה האזורית שנדרשת כדי לתמוך במיקום אחסון הנתונים.
בדוגמת הפלט הבאה, הערך
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, נדרש רק Private Service Connect NEG אחד לכל אזור. אפשר לשתף את רשת המשנה ולהשתמש בה במכונות וירטואליות או בישויות אחרות. אם לא מציינים רשת משנה, נקודות קצה ברשת יכולות להיות שייכות לכל רשת משנה באזור שבו נוצרה קבוצת נקודות הקצה ברשת.
- 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://REGIONAL_ENDPOINT/v1/organizations/$PROJECT_ID/instances"
REGIONAL_ENDPOINT הוא נקודת הקצה האזורית שנדרשת כדי לתמוך במיקום אחסון הנתונים.
בדוגמת הפלט הבאה, הערך
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 שמפנה ל-service attachment שקיבלתם מגוף התגובה של המכונה בשלב הקודם.
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 לחלוקת העומס.
משתמשים בפקודה הזו כדי ליצור משאב של אישור 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 חייבת להפנות לשירות לקצה העורפי שמוגדר כברירת מחדל. מגדירים את שירות הקצה העורפי שיצרתם כברירת המחדל.
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 בשם של השירות לקצה העורפי.
ניתוב חיצוני (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://REGIONAL_ENDPOINT/v1/organizations/$PROJECT_ID/instances"REGIONAL_ENDPOINT הוא נקודת הקצה האזורית שנדרשת כדי לתמוך במיקום אחסון הנתונים.
בדוגמת הפלט הבאה, הערך
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: קובץ השירות שאליו רוצים להתחבר. משתמשים בערך של קובץ השירות שמוחזר מהפקודה הקודמת. לדוגמה:
projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7 - NETWORK_NAME: (אופציונלי) שם הרשת שבה נוצר ה-NEG. אם לא מציינים את הפרמטר הזה, נעשה שימוש ברשת של פרויקט
default. - SUBNET_NAME: השם של תת-הרשת שמשמשת לקישוריות פרטית אל היצרן. גודל תת-הרשת יכול להיות קטן: ה-NEG של Private Service Connect צריך רק כתובת IP אחת מתת-הרשת. ב-Apigee, נדרש רק Private Service Connect NEG אחד לכל אזור. אפשר לשתף את רשת המשנה ולהשתמש בה במכונות וירטואליות או בישויות אחרות. אם לא מציינים רשת משנה, נקודות קצה ברשת יכולות להיות שייכות לכל רשת משנה באזור שבו נוצרה קבוצת נקודות הקצה ברשת.
- $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 חייבת להפנות לשירות לקצה העורפי שמוגדר כברירת מחדל. מגדירים את השירות לקצה העורפי שיצרתם כברירת מחדל.
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 בשם של השירות לקצה העורפי.
מאזן עומסים חיצוני אזורי
הגדרת מאזן עומסים חיצוני אזורי מסוג HTTP(S). מידע נוסף סקירה כללית של מאזן עומסים חיצוני מסוג HTTP(S)
- חשוב לוודא שהגדרתם את המשתנים בקטע הגדרת משתני סביבה.
- יוצרים תת-רשת מסוג proxy-only:
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://REGIONAL_ENDPOINT/v1/organizations/$PROJECT_ID/instances"REGIONAL_ENDPOINT הוא נקודת הקצה האזורית שנדרשת כדי לתמוך במיקום אחסון הנתונים.
בדוגמת הפלט הבאה, הערך
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 חייבת להפנות לשירות לקצה העורפי שמוגדר כברירת מחדל. מגדירים את השירות לקצה העורפי שיצרתם כברירת מחדל.
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 בשם של השירות לקצה העורפי.
הקצאת הרשאות ל-Apigee הושלמה. עוברים אל פריסת שרת proxy לדוגמה.
שלב 8: פריסת שרת proxy לדוגמה
- מורידים את הפרוקסי לדוגמה מ-GitHub. יעד הפרוקסי הוא השירות 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://REGIONAL_ENDPOINT/v1/organizations/$PROJECT_ID/apis?name=httpbin&action=import" \ -F 'file=@PATH_TO_ZIP_FILE/httpbin_rev1_2020_02_02.zip'REGIONAL_ENDPOINT הוא נקודת הקצה האזורית שנדרשת כדי לתמוך במיקום אחסון הנתונים.
PATH_TO_ZIP_FILE הוא הנתיב לספרייה שמכילה את קובץ ה-ZIP שהורד.
-
פריסת שרת ה-proxy של ה-API בסביבה שיצרתם קודם:
אין מיקום אחסון נתונים
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://REGIONAL_ENDPOINT/v1/organizations/$PROJECT_ID/environments/$ENVIRONMENT_NAME/apis/httpbin/revisions/1/deployments"REGIONAL_ENDPOINT הוא נקודת הקצה האזורית שנדרשת כדי לתמוך במיקום אחסון הנתונים.
- כדי לוודא שהפריסה הסתיימה בהצלחה, מריצים את קריאת ה-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://REGIONAL_ENDPOINT/v1/organizations/$PROJECT_ID/environments/$ENVIRONMENT_NAME/apis/httpbin/revisions/1/deployments"REGIONAL_ENDPOINT הוא נקודת הקצה האזורית שנדרשת כדי לתמוך במיקום אחסון הנתונים.
קוראים ל-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://REGIONAL_ENDPOINT/v1/organizations/$PROJECT_ID/envgroups"REGIONAL_ENDPOINT הוא נקודת הקצה האזורית שנדרשת כדי לתמוך במיקום אחסון הנתונים.
אם מופיעה שגיאה כמו:
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.