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

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

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

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

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

מגבלות

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

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

סיכום השלבים

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

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

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

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

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

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

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

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

  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=YOUR_RUNTIMEDBKEY_LOCATION

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

      במספר אזורים

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

      לדוגמה:

      RUNTIMEDBKEY_LOCATION=YOUR_RUNTIMEDBKEY_LOCATION

      אם יש לכם הגדרה של מספר אזורים בארה"ב, מומלץ להשתמש ב-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/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", ... }'
  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://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.

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

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

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

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

  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://REGIONAL_ENDPOINT/v1/organizations/$PROJECT_ID/instances/$INSTANCE_NAME"

    REGIONAL_ENDPOINT הוא נקודת הקצה האזורית שנדרשת כדי לתמוך במיקום הנתונים.

שלב 6: יצירת סביבה

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

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

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

    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
  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"'"
      }'

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

    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 יוצרת סביבה חדשה.

  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://REGIONAL_ENDPOINT/v1/organizations/$PROJECT_ID/environments"

    REGIONAL_ENDPOINT הוא נקודת הקצה האזורית שנדרשת כדי לתמוך במיקום הנתונים.

    ‫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://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"
        }
      ]
    }
  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://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 הוא נקודת הקצה האזורית שנדרשת כדי לתמוך במיקום הנתונים.

  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://REGIONAL_ENDPOINT/v1/organizations/$PROJECT_ID/envgroups/$ENV_GROUP_NAME"

    REGIONAL_ENDPOINT הוא נקודת הקצה האזורית שנדרשת כדי לתמוך במיקום הנתונים.

  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://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 הוא נקודת הקצה האזורית שנדרשת כדי לתמוך במיקום הנתונים.

  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://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 המקושר ו/או פרויקטים אחרים ב-Cloud שאתם שולטים בהם). בשיטה הזו, הבקשות עוברות דרך נקודת קצה (endpoint) של שירות או דרך מאזן עומסים פנימי אזורי לנקודת הצמדה יחידה שנקראת קבצים מצורפים לשירות. ההגדרה הזו מאפשרת ללקוחות הפנימיים שלכם לשלוח בקשות ל-proxy ל-API של Apigee מכל מכונה שמחוברת לרשת.

חיצוני עם Private Service Connect (חדש)

מאפשרים גישה חיצונית לשרתי ה-proxy של ה-API באמצעות Private Service Connect.

משתמשים ב-Private Service Connect כדי להפעיל חיבור פרטי בין בעלים של שירות מנוהל (Apigee) לבין צרכן השירות (פרויקט ה-VPC המקושר ו/או פרויקט אחד או יותר אחרים בענן שאתם שולטים בהם). בשיטה הזו, הבקשות עוברות דרך מאזן עומסים חיצוני גלובלי או מאזן עומסים חיצוני אזורי לנקודת הצמדה יחידה שנקראת service attachment. ההגדרה הזו מאפשרת לשלוח בקשות ל-proxy ל-API של Apigee מכל מכונה שמחוברת לרשת.

ההוראות שלמטה מתייחסות לכל אחת מהגישות האלה לניתוב.

ניתוב פנימי (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://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"
        }
      ]
    }
  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: שם רשת המשנה שמשמשת לקישוריות פרטית לספק. גודל רשת המשנה יכול להיות קטן: קבוצת נקודות הקצה של Private Service Connect צריכה רק כתובת IP אחת מרשת המשנה. ב-Apigee, נדרשת רק קבוצת נקודות קצה אחת של 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://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"
        }
      ]
      }
  2. יוצרים 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
    

    כאשר:

שלב 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 בשם של שירות לקצה העורפי.

  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://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"
        }
      ]
    }
  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: קובץ השירות שאליו רוצים להתחבר. משתמשים בערך של קובץ השירות שמוחזר מהפקודה הקודמת. לדוגמה: 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 בשם של שירות לקצה העורפי.

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

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

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

    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. יעד הפרוקסי הוא השירות 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://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 שהורד.

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

  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://REGIONAL_ENDPOINT/v1/organizations/$PROJECT_ID/environments/$ENVIRONMENT_NAME/apis/httpbin/revisions/1/deployments"

    REGIONAL_ENDPOINT הוא נקודת הקצה האזורית שנדרשת כדי לתמוך במיקום הנתונים.

  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://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.