הקצאת ארגון בתשלום ללא קישור בין רשתות VPC שכנות (peering)

הקצאת ארגון בתשלום ללא קישור בין רשתות VPC שכנות (peering)

הדף הזה מתייחס ל-Apigee, אבל לא ל-Apigee Hybrid.

לעיון במסמכי התיעוד של Apigee Edge

במאמר הזה מוסבר איך להתקין ולהגדיר את Apigee משורת הפקודה בלי להשתמש ב-VPC peering. השלבים האלה רלוונטיים גם למודלים של תמחור לפי מינוי וגם למודלים של תמחור לפי שימוש בארגונים בתשלום, עם או בלי הפעלה של שמירת נתונים במדינה מסוימת.

אפשר לעיין גם במאמר אפשרויות הקצאת הרשאות.

מגבלות

לאפשרות ההתקנה של קישור בין רשתות וירטואליות שמתוארת במסמך הזה יש כמה מגבלות:

רשימה מלאה של התכונות וגישות הרישות שנתמכות ושלא נתמכות בקישור בין רשתות שכנות (peering) שאינו VPC, מופיעה במאמר הדרכה: איך בוחרים אפשרות רשת.

סיכום השלבים

אלה השלבים להקצאת הרשאות:

שלב 1: הגדרת משתני סביבה

מגדירים את gcloud ומגדירים משתני סביבה לשימוש בשלבים הבאים:

  1. חשוב לוודא שביצעתם את דרישות ההגדרה שמפורטות בקטע לפני שמתחילים.
  2. צריך להתקין את Cloud SDK. אם אתם צריכים להתקין אותו, תוכלו לעיין במאמר בנושא התקנת Cloud SDK.
  3. מאתחלים את Cloud SDK, כמו שמתואר במאמר אתחול ה-CLI של gcloud, או מוודאים שהפרויקט בענן שיצרתם בקטע דרישות מוקדמות הוא פרויקט ברירת המחדל עבור gcloud.
  4. מגדירים את משתני הסביבה הבאים בטרמינל של הפקודה. בוחרים את הכרטיסייה שמתאימה לסוג הארגון שצריך: 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 הוא סוג החיוב של הארגון שאתם יוצרים. הערכים החוקיים הם:

    המיקום של נתונים

    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 הוא סוג החיוב של הארגון שאתם יוצרים. הערכים החוקיים הם:

  5. (אופציונלי) כדי לבדוק את העבודה, אפשר להציג את הערכים שהגדרתם. שימו לב: כשרוצים להשתמש במשתנה בפקודות, צריך להוסיף לפני שם המשתנה סימן דולר ($).

    אין מיקום נתונים

    echo $AUTH
    echo $PROJECT_ID
    echo $PROJECT_NUMBER
    echo $RUNTIME_LOCATION
    echo $ANALYTICS_REGION
    echo $BILLING_TYPE
    

    התגובות לפקודות echo אמורות להיראות כך:

    YOUR_TOKEN
    my-cloud-project
    1234567890
    us-west1
    us-west1
    SUBSCRIPTION
    

    המיקום של נתונים

    echo $AUTH
    echo $PROJECT_ID
    echo $PROJECT_NUMBER
    echo $RUNTIME_LOCATION
    echo $CONTROL_PLANE_LOCATION
    echo $CONSUMER_DATA_REGION
    echo $BILLING_TYPE
    

    התגובות לפקודות echo אמורות להיראות כך:

    YOUR_TOKEN
    my-cloud-project
    1234567890
    us-west1
    us
    us-west1
    SUBSCRIPTION
    

שלב 2: הפעלת ממשקי API

  1. כדי להשתמש ב-Apigee, צריך להפעיל כמה ממשקי Google Cloud API. מפעילים אותם באמצעות הפקודה services enable הבאה:

    gcloud services enable apigee.googleapis.com \
        apihub.googleapis.com \
        compute.googleapis.com \
        cloudkms.googleapis.com --project=$PROJECT_ID
  2. (אופציונלי) כדי לבדוק את העבודה, משתמשים בפקודה services list כדי להציג את כל ממשקי ה-API המופעלים:

    gcloud services list

    בתשובה מוצגים כל השירותים המופעלים, כולל ממשקי ה-API שהפעלתם עכשיו.

שלב 3: יוצרים את הזהות בשירות Apigee

  1. יוצרים את הזהות בשירות של Apigee:

    gcloud beta services identity create --service=apigee.googleapis.com \
      --project=$PROJECT_ID
  2. מוודאים שהנציג נוצר בהצלחה. התשובה צריכה להציג את שם הסוכן בפורמט הבא: 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.

  1. יצירה של אוסף מפתחות ומפתח להצפנת מסד נתונים בזמן ריצה.

    1. מגדירים משתנה סביבה למיקום של טבעת ההצפנה והמפתח של מסד הנתונים של זמן הריצה. כך תוכלו לשמור על עקביות כשאתם יוצרים אותם, ויהיה לכם קל יותר לעקוב אחרי ההוראות במסמכים.

      הערך הוא המיקום הפיזי שבו מאוחסנים מחזיק המפתחות והמפתח של הצפנת מסד הנתונים בזמן הריצה.

      אזור יחיד

      הגדרות של אזור יחיד (שבהן יש רק מופע אחד באזור אחד): בוחרים מתוך המיקומים האזוריים הנתמכים של KMS.

      לדוגמה:

      RUNTIMEDBKEY_LOCATION="us-west1"

      הערך יכול להיות זהה לערך של $RUNTIME_LOCATION (גם הוא אזור), אבל הוא לא חייב להיות זהה. עם זאת, יכול להיות שיהיה שיפור בביצועים אם הם יהיו זהים.

      במספר אזורים

      תצורות של מספר אזורים: בוחרים מתוך המיקומים הנתמכים במספר אזורים (למשל us או europe) או המיקומים הנתמכים בשני אזורים.

      לדוגמה:

      RUNTIMEDBKEY_LOCATION="us"

      אם יש לכם הגדרה של מספר אזורים בארה"ב, מומלץ להשתמש ב-us למיקום שלכם, אם אפשר. אחרת, משתמשים ב-nam4.

    2. הגדרת משתני סביבה לאוספי מפתחות של מסד נתונים ולשמות של מפתחות.

      השם של מחזיק המפתחות צריך להיות ייחודי בארגון. אם יוצרים אזור שני או אזורים נוספים, השם לא יכול להיות זהה לשמות של מחזיקי מפתחות אחרים.

      RUNTIMEDB_KEY_RING_NAME=YOUR_DB_KEY_RING_NAME
      RUNTIMEDB_KEY_NAME=YOUR_DB_KEY_NAME
    3. (אופציונלי) כדי לבדוק את העבודה, אפשר להציג את הערכים שהגדרתם. חשוב לזכור: כשרוצים להשתמש במשתנה בפקודות, צריך להוסיף לפני שם המשתנה סימן דולר ($).
      echo $RUNTIMEDBKEY_LOCATION
      echo $RUNTIMEDB_KEY_RING_NAME
      echo $RUNTIMEDB_KEY_NAME
    4. יצירת אוסף מפתחות חדש:
      gcloud kms keyrings create $RUNTIMEDB_KEY_RING_NAME \
        --location $RUNTIMEDBKEY_LOCATION --project $PROJECT_ID

      המיקום של מפתח ההצפנה של מסד הנתונים של זמן הריצה של Apigee תומך בכל המיקומים של Cloud KMS שתומכים ב-Cloud HSM וב-Cloud EKM.

    5. יוצרים מפתח:

      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
    6. מכניסים את מזהה המפתח למשתנה סביבה. תשתמשו במשתנה הזה בפקודה מאוחרת יותר:

      RUNTIMEDB_KEY_ID=YOUR_RUNTIMEDB_KEY_ID
    7. מעניקים לסוכן השירות של 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.

      חשוב לוודא שהשתמשתם במספר הפרויקט ולא בשם הפרויקט בכתובת האימייל של חשבון השירות.

  2. אם אתם משתמשים ב שמירת נתונים באזור מסוים, אתם צריכים ליצור אוסף מפתחות ומפתח להצפנת מישור הבקרה. אם אתם לא משתמשים במיקום הנתונים, עוברים אל שלב 3.
  3. כדי ליצור אוסף מפתחות ומפתח להצפנת מישור הבקרה, פועלים לפי השלבים הבאים.

    1. מגדירים משתנה סביבה למיקום של טבעת ההצפנה ומפתח ההצפנה של מסד הנתונים במישור הבקרה:
      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.
    2. מגדירים משתני סביבה לאוספי מפתחות ולשמות מפתחות של מסד הנתונים של מישור הבקרה.

      השם של מחזיק המפתחות צריך להיות ייחודי בארגון.

      CONTROL_PLANE_KEY_RING_NAME=YOUR_CONTROL_PLANE_KEY_RING_NAME
      CONTROL_PLANE_KEY_NAME=YOUR_CONTROL_PLANE_KEY_NAME
      CONSUMER_DATA_KEY_RING_NAME=YOUR_CONSUMER_DATA_KEY_RING_NAME
      CONSUMER_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 הוא השם של המפתח שבו תשתמשו כדי לזהות את מפתח ההצפנה של אזור הנתונים שלכם.
    3. יצירת אוסף מפתחות חדש:
      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
    4. יוצרים מפתח:
      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
    5. מכניסים את מזהה המפתח למשתנה סביבה. תשתמשו במשתנה הזה בפקודה מאוחרת יותר:
      CONTROL_PLANE_KEY_ID=YOUR_CONTROL_PLANE_KEY_ID
      
      CONSUMER_DATA_KEY_ID=YOUR_CONSUMER_DATA_KEY_ID
    6. מעניקים לסוכן השירות של 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.

      חשוב לוודא שהשתמשתם במספר הפרויקט ולא בשם הפרויקט בכתובת האימייל של חשבון השירות.

    ראו גם: פתרון בעיות ב-CMEK.

  4. יוצרים את הארגון על ידי שליחת הבקשה הבאה אל 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", ... }'
  5. מחכים כמה דקות.
  6. כדי לבדוק את הסטטוס של בקשת היצירה, אפשר לשלוח בקשת 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.

שלב 5: יצירת מופע של זמן ריצה

בזמן הריצה, המערכת יוצרת מופע שבו מאוחסן פרויקט Apigee והשירותים שקשורים אליו. המופע הזה מספק את נקודת הקצה שפונה למשתמשים של השירותים שלכם. כדי ליצור מופע חדש של זמן ריצה:

  1. בודקים ש-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 מגיב בשגיאה, צריך להמתין כמה דקות ולשלוח את הבקשה שוב.

  2. בדומה למשימה הקודמת שבה יצרתם מפתח הצפנה למסד הנתונים, עכשיו אתם צריכים ליצור מפתח Cloud KMS שמשמש להצפנת נתונים בצד השרת. כדי להתחיל, מגדירים את משתני הסביבה הבאים:
    INSTANCE_NAME=YOUR_INSTANCE_NAME
    RUNTIME_LOCATION=YOUR_RUNTIME_LOCATION
    DISK_KEY_RING_NAME=YOUR_DISK_KEY_RING_NAME
    DISK_KEY_NAME=YOUR_DISK_KEY_NAME
  3. כאשר:

    • INSTANCE_NAME: השם של המכונה החדשה. לדוגמה: my-runtime-instance. השם חייב להתחיל באות קטנה באנגלית, יכול להיות באורך של עד 32 תווים, ויכול לכלול רק אותיות קטנות, מספרים ומקפים. הוא לא יכול להתחיל או להסתיים במקף, והוא צריך להיות באורך של שני תווים לפחות.
    • RUNTIME_LOCATION הוא המיקום הפיזי שבו האשכול מתארח. הערכים התקינים הם כל מיקום שמותר ב-Compute Engine. (כאן אפשר לעיין ברשימת האזורים והתחומים שבהם אפשר להשתמש ב-Google Cloud). בדוגמה הזו נשתמש ב-us-west1.
    • DISK_KEY_RING_NAME הוא השם של אוסף מפתחות ההצפנה של הדיסק.
    • DISK_KEY_NAME הוא השם של מפתח ההצפנה של הדיסק.
  4. יוצרים מפתח להצפנת הדיסק:
    1. יוצרים אוסף מפתחות חדש לדיסק:
      gcloud kms keyrings create $DISK_KEY_RING_NAME \
        --location $RUNTIME_LOCATION \
        --project $PROJECT_ID

      אוסף מפתחות הדיסק צריך להיות מוגדר לאותו מיקום של המכונה. לכל מופע ולכל מחזיק מפתחות צריכים להיות מיקום משלהם.

    2. יוצרים מפתח דיסק חדש:
      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
    3. מציבים את נתיב המפתח במשתנה סביבה. תשתמשו במשתנה הזה בפקודה מאוחרת יותר:

      DISK_KEY_ID=YOUR_DISK_KEY_ID

      לדוגמה: DISK_KEY_ID=projects/my-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-key

    4. מעניקים לסוכן השירות של 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.

  5. יוצרים מופע חדש של זמן ריצה לפרויקט על ידי שליחת בקשה אל 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 מחזיר שגיאה, אפשר לעיין במאמר בנושא יצירת מכונה חדשה.

  6. כדי לבדוק את הסטטוס של הבקשה ליצירת מופע של זמן ריצה, מריצים את הפקודה הבאה. כשהסטטוס הוא פעיל, אפשר לעבור לשלב הבא.

    אין מיקום נתונים

    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: יצירת סביבה

כדי ליצור סביבה ולצרף אותה לזמן הריצה בשורת הפקודה:

  1. מגדירים משתני סביבה לשימוש בקטע הזה.

    בסביבת תשלום לפי שימוש, יוצרים את המשתנים הבאים:

    ENVIRONMENT_NAME="YOUR_ENV_NAME"
    ENVIRONMENT_TYPE="YOUR_ENV_TYPE"
    ENV_GROUP_NAME="YOUR_ENV_GROUP_NAME"
    ENV_GROUP_HOSTNAME="YOUR_ENV_GROUP_HOSTNAME"

    כאשר:

    • ENVIRONMENT_NAME הוא שם מחרוזת. לדוגמה: test
    • ENVIRONMENT_TYPE הוא סוג הסביבה של הסביבה הזו, והוא רלוונטי רק למשתמשי Pay-as-you-go, שצריכים לציין אחד מהערכים האלה: BASE, ‏ INTERMEDIATE או COMPREHENSIVE. משתמשים אחרים צריכים להשמיט את סוג הסביבה.
    • ENV_GROUP_NAME הוא שם מחרוזת. לדוגמה: test-group
    • ENV_GROUP_HOSTNAME הוא שם מארח דומיין תקין. לדוגמה: foo.example.com
  2. יוצרים סביבה חדשה באמצעות 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"'",
          "type":"'"$ENVIRONMENT_TYPE"'"
      }'

    המיקום של נתונים

    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"'",
          "type":"'"$ENVIRONMENT_TYPE"'"
      }'

    מערכת Apigee יוצרת סביבה חדשה.

  3. לפני שממשיכים, צריך לוודא ש-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"
    ]
  4. מצרפים את הסביבה החדשה למופע של זמן הריצה:

    אין מיקום נתונים

    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"
        }
      ]
    }
  5. יוצרים קבוצת סביבות חדשה באמצעות הפקודה הבאה. מידע נוסף זמין במאמר מידע על סביבות וקבוצות של סביבות.

    אין מיקום נתונים

    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"'"]
      }'
  6. ממתינים לסיום הפעולה. אפשר לבדוק את הסטטוס של הקבוצה החדשה באמצעות בקשה כמו הבקשה הבאה:

    אין מיקום נתונים

    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"
  7. מצרפים את הסביבה החדשה לקבוצת הסביבות החדשה באמצעות הפקודה הבאה:

    אין מיקום נתונים

    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"'"
      }'
  8. כדי לבדוק את סטטוס הפעולה, קוראים ל-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:

בוחרים את הכרטיסייה שלמטה לפי ההגדרה הרצויה ופועלים לפי השלבים:

נקודת קצה של שירות

יצירת נקודת קצה של שירות Private Service Connect לקובץ המצורף עם השירות

  1. מקבלים את קובץ השירות מהמכונה שיצרתם קודם:

    אין מיקום נתונים

    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"
        }
      ]
    }
  2. יוצרים נקודת קצה של שירות Private Service Connect שמפנה לקובץ המצורף עם השירות שקיבלתם מגוף התגובה של המופע בשלב הקודם, כמו שמוסבר במאמר יצירת נקודת קצה של Private Service Connect.
  3. הקצאת הרשאות ל-Apigee הושלמה. עוברים אל פריסת שרת proxy לדוגמה.

מאזן עומסים פנימי אזורי

שלב 7א: הגדרת משתני סביבה

ההוראות בקטע הזה משתמשות במשתני סביבה כדי להתייחס למחרוזות שמשמשות שוב ושוב. חשוב לוודא שהגדרתם את המשתנים בקטע הגדרת משתני סביבה.

בנוסף, מגדירים את משתני הסביבה הבאים:

NEG_NAME=YOUR_NEG_NAME
NETWORK_NAME=YOUR_NETWORK_NAME
SUBNET_NAME=YOUR_SUBNET_NAME
TARGET_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)

  1. מקבלים את קובץ השירות מהמכונה שיצרתם קודם:

    אין מיקום נתונים

    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"
        }
      ]
      }
  2. יוצרים 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
    

    כאשר:

שלב 7ד: הגדרת מאזן עומסים פנימי אזורי

  1. שומרים כתובת 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
  2. יוצרים שירות לקצה העורפי עבור ה-NEG.
    gcloud compute backend-services create BACKEND_SERVICE_NAME \
    --load-balancing-scheme=INTERNAL_MANAGED \
    --protocol=HTTPS \
    --region=$RUNTIME_LOCATION \
    --project=$PROJECT_ID
  3. מחליפים את BACKEND_SERVICE_NAME בשם של שירות ה-Backend.

  4. מוסיפים את ה-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 בשם של השירות לקצה העורפי.
  5. כדי ליצור מאזן עומסים ב-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 של האישור בניהול עצמי.
  6. יוצרים מפת 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: השם של שירות ברירת המחדל לקצה העורפי של מאזן העומסים. ברירת המחדל משמשת כשאין כלל מארח שתואם לשם המארח המבוקש.
  7. משתמשים במשאב של אישור 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: השם של משאב האישור.
  8. יוצרים את כלל ההעברה.
    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: שם רשת המשנה שמשמשת לקישוריות פרטית לבעלים של השירות המנוהל.
  9. הקצאת הרשאות ל-Apigee הושלמה. עוברים אל פריסת שרת proxy לדוגמה.

ניתוב חיצוני (Private Service Connect)

בקטע הזה מוסבר איך להגדיר ניתוב חיצוני באמצעות Private Service Connect כדי לאפשר תקשורת בין Apigee לבין רשתות VPC שאתם שולטים בהן. צריך לעשות את זה לפני ששולחים בקשה מלקוח חיצוני למופע זמן הריצה של Apigee.

שלב 7ב: יצירת NEG והגדרת מאזן העומסים

אפשר ליצור מאזן עומסים גלובלי או אזורי.

מאזן עומסים חיצוני גלובלי

הגדרת מאזן עומסים חיצוני גלובלי מסוג HTTP(S) (סכימת איזון העומסים מוגדרת לערך EXTERNAL_MANAGED).

למרות ש-NEG של Private Service Connect הוא אזורי, כל שאר רכיבי איזון העומסים בהגדרה הזו הם גלובליים.

  1. מוודאים שהגדרתם את משתני הסביבה לפי ההוראות שבמאמר הגדרה של משתני סביבה.
  2. מקבלים את קובץ השירות מהמכונה שיצרתם קודם:

    אין מיקום נתונים

    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"
        }
      ]
    }
  3. יוצרים 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. אם עדיין לא עשיתם את זה, כדאי ליצור משתנה סביבה שיכיל את מזהה הפרויקט, כי הוא נמצא בשימוש ברוב הפקודות הבאות.
  4. שומרים כתובת 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
  5. יוצרים שירות לקצה העורפי עבור ה-NEG.
    gcloud compute backend-services create BACKEND_SERVICE_NAME \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --protocol=HTTPS \
        --global --project=$PROJECT_ID
  6. מחליפים את BACKEND_SERVICE_NAME בשם של שירות ה-Backend.

  7. מוסיפים את ה-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: האזור של קבוצת נקודות הקצה ברשת.
  8. יוצרים מפת 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: השם של שירות הקצה העורפי שמוגדר כברירת המחדל במאזן העומסים. ברירת המחדל משמשת כשאין כלל מארח שתואם לשם המארח המבוקש.
  9. יוצרים את שרת ה-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: השם של משאב האישור.
  10. יוצרים את כלל ההעברה.
    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 של היעד.

מאזן עומסים חיצוני אזורי

הגדרת מאזן עומסים חיצוני אזורי מסוג HTTP(S). מידע נוסף סקירה כללית על מאזן עומסים חיצוני מסוג HTTP(S)

  1. חשוב לוודא שהגדרתם את המשתנים בקטע הגדרת משתני סביבה.
  2. יוצרים תת-רשת של שרת 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: שם הרשת שבה נוצרת רשת המשנה. אם לא מציינים את הפרמטר הזה, נעשה שימוש ברשת הפרויקט שמוגדרת כברירת מחדל.
  3. מקבלים את קובץ השירות מהמכונה שיצרתם קודם:

    אין מיקום נתונים

    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"
        }
      ]
    }
  4. יוצרים קבוצת נקודות קצה ברשת.
    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
  5. יוצרים שירות לקצה העורפי עבור ה-NEG.
    gcloud compute backend-services create BACKEND_SERVICE_NAME \
      --load-balancing-scheme=EXTERNAL_MANAGED \
      --protocol=HTTPS \
      --region=$RUNTIME_LOCATION  \
      --project=$PROJECT_ID
  6. מחליפים את BACKEND_SERVICE_NAME בשם של שירות ה-Backend.

  7. מוסיפים את ה-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: השם של קבוצת נקודות הקצה ברשת.
  8. יוצרים מפת 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: השם של שירות הקצה העורפי שמוגדר כברירת המחדל במאזן העומסים. ברירת המחדל משמשת כשאין כלל מארח שתואם לשם המארח המבוקש.
  9. יוצרים את שרת ה-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: השם של משאב האישור.
  10. שמירת כתובת חיצונית אזורית למאזן העומסים. הערה: צריך להגדיר את רמת הרשת ל-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
  11. יוצרים את כלל ההעברה.
    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 של היעד.

הקצאת הרשאות ל-Apigee הושלמה. עוברים אל פריסת שרת proxy לדוגמה.

שלב 8: פריסת שרת proxy לדוגמה

  1. מורידים את הפרוקסי לדוגמה מ-GitHub. יעד ה-proxy הוא השירות httpbin.org, שהוא שירות ציבורי נפוץ לבקשות ותגובות.
  2. מעלים את חבילת ה-proxy ל-API לסביבת זמן הריצה באמצעות Apigee apis API:

    אין מיקום נתונים

    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 שהורד.

  3. פריסת ה-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"
  4. כדי לוודא שהפריסה הסתיימה בהצלחה, מריצים את קריאת ה-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"
  5. קוראים ל-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.