שלב 2: יוצרים ארגון

בשלב הזה יוצרים ארגון Apigee.

כדי ליצור ארגון חדש ולהקצות לו משתמשים:

  1. בשורת הפקודה, מקבלים את פרטי הכניסה לאימות של gcloud באמצעות הפקודה הבאה:

    ‫Linux / MacOS

    export TOKEN=$(gcloud auth print-access-token)

    כדי לוודא שהטוקן אוכלס, משתמשים בפקודה echo, כמו בדוגמה הבאה:

    echo $TOKEN

    האסימון יוצג כמחרוזת מקודדת.

    Windows

    for /f "tokens=*" %a in ('gcloud auth print-access-token') do set TOKEN=%a

    כדי לוודא שהטוקן אוכלס, משתמשים בפקודה echo, כמו בדוגמה הבאה:

    echo %TOKEN%

    האסימון יוצג כמחרוזת מקודדת.

  2. בשלב 1 יצרתם את משתנה הסביבה PROJECT_ID. מוסיפים את משתני הסביבה הבאים. בוחרים את הכרטיסייה שמתאימה לסוג הארגון שרוצים: ללא מיקום אחסון הנתונים או עם מיקום אחסון הנתונים:

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

    ‫Linux / MacOS

    export ORG_NAME=$PROJECT_ID
    export ANALYTICS_REGION="ANALYTICS_REGION"
    export RUNTIMETYPE=HYBRID

    Windows

    set ORG_NAME=$PROJECT_ID
    set ANALYTICS_REGION="ANALYTICS_REGION"
    set RUNTIMETYPE=HYBRID

    כאשר:

    • ‫ORG_NAME (חובה): הערך הזה צריך להיות זהה לערך של PROJECT_ID.
    • ‫ANALYTICS_REGION (חובה): האזור הראשי לאחסון נתוני Analytics. רשימת האזורים שבהם אפשר להשתמש ב-Apigee API Analytics זמינה במאמר מיקומי Apigee.
    • ‫RUNTIMETYPE (חובה): צריך להגדיר את הערך HYBRID.

    מיקום אחסון הנתונים

    ‫Linux / MacOS

    export ORG_NAME=$PROJECT_ID
    export RUNTIMETYPE=HYBRID
    export CONTROL_PLANE_LOCATION="YOUR_CONTROL_PLANE_LOCATION"
    export CONSUMER_DATA_REGION="YOUR_CONSUMER_DATA_REGION"
    export BILLING_TYPE="SUBSCRIPTION"

    Windows

    set ORG_NAME=$PROJECT_ID
    set RUNTIMETYPE=HYBRID
    set CONTROL_PLANE_LOCATION="YOUR_CONTROL_PLANE_LOCATION"
    set CONSUMER_DATA_REGION="YOUR_CONSUMER_DATA_REGION"
    set BILLING_TYPE="SUBSCRIPTION"

    כאשר:

    • ‫ORG_NAME: הערך הזה צריך להיות זהה לערך של PROJECT_ID.
    • ‫RUNTIMETYPE: הערך שצריך להגדיר הוא HYBRID.
    • ‫CONTROL_PLANE_LOCATION: המיקום שבו מאוחסן תוכן הליבה של הלקוח, כמו חבילות פרוקסי. רשימה של האזורים הזמינים של מישור הבקרה של Apigee API זמינה כאן.
    • ‫CONSUMER_DATA_REGION: אזור משנה של אזור מישור הבקרה. חובה לציין גם את CONTROL_PLANE_LOCATION וגם את CONSUMER_DATA_REGION. רשימת האזורים שבהם אפשר לאחסן נתונים של צרכנים זמינה במאמר בנושא מיקומי Apigee.
    • ‫BILLING_TYPE: הערך שצריך להגדיר הוא "SUBSCRIPTION". זהו סוג החיוב של הארגון ב-Apigee Hybrid. מידע נוסף זמין במאמר בנושא זכויות שימוש במינוי.

    לדוגמה:

    export ORG_NAME=$PROJECT_ID
    export RUNTIMETYPE=HYBRID
    export CONSUMER_DATA_REGION="us-west1"
    export CONTROL_PLANE_LOCATION="us"
    export BILLING_TYPE="SUBSCRIPTION"
    
  3. כדי ליצור את הארגון, קוראים ל-Apigee API הבא:

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

    curl -H "Authorization: Bearer $TOKEN" -X POST -H "content-type:application/json" \
      -d '{
        "name":"'"$ORG_NAME"'",
        "runtimeType":"'"$RUNTIMETYPE"'",
        "analyticsRegion":"'"$ANALYTICS_REGION"'"
      }' \
      "https://apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID"

    מיקום אחסון הנתונים

    curl -H "Authorization: Bearer $TOKEN" -X POST -H "content-type:application/json" \
      -d '{
        "name":"'"$ORG_NAME"'",
        "billingType":"'"$BILLING_TYPE"'",
        "runtimeType":"'"$RUNTIMETYPE"'",
        "apiConsumerDataLocation":"'"$CONSUMER_DATA_REGION"'"
      }' \
      "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID"

    אם בקשת היצירה מצליחה, ה-API של הארגונים מגיב בהודעה שדומה לזו:

    {
      "name": "organizations/org_name/operations/LONG_RUNNING_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "INSERT",
        "targetResourceName": "organizations/org_name",
        "state": "IN_PROGRESS"
      }
    }

    כאשר:

    • ‫LONG_RUNNING_OPERATION_ID הוא ה-UUID של פעולה אסינכרונית ממושכת. אפשר להשתמש במזהה הזה כדי לבדוק את הסטטוס של בקשת יצירת הארגון (כמו שמתואר בשלב 5).
    • ‫org_name הוא המזהה של הארגון החדש שנוצר כרגע.

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

    אם מופיעה הודעת שגיאה, אפשר להיעזר במאמר בנושא פתרון בעיות ביצירת ארגון.

  4. שומרים את מזהה הפעולה הממושכת במשתנה סביבה. הוא יהיה שימושי למשימות ניהול עתידיות.

    תחביר

    export LONG_RUNNING_OPERATION_ID=LONG_RUNNING_OPERATION_ID

    דוגמה

    export LONG_RUNNING_OPERATION_ID=6abc8a72-46de-f9da-bcfe-70d9ab347e4f
  5. אפשר לבדוק את הסטטוס של הפעולה הממושכת שהמזהה שלה הוחזר על ידי בקשת היצירה. כדי לעשות את זה, משתמשים ב-Operations API. לדוגמה:

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

    curl -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/$LONG_RUNNING_OPERATION_ID"

    הדוגמאות הבאות מראות תשובות אפשריות לבקשה הזו:

    IN_PROGRESS

    אם Apigee עדיין יוצר את הארגון, הוא משיב עם סטטוס IN_PROGRESS. לדוגמה:

    {
      "name": "organizations/ORG_NAME/operations/LONG_RUNNING_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "INSERT",
        "targetResourceName": "organizations/ORG_NAME",
        "state": "IN_PROGRESS"
      }
    }

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

    הסתיים

    כשהארגון מוקצה, הסטטוס של הפעולה הממושכת הוא FINISHED. לדוגמה:

    {
      "name": "organizations/ORG_NAME/operations/LONG_RUNNING_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "INSERT",
        "targetResourceName": "organizations/ORG_NAME",
        "state": "FINISHED"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.Organization",
        "name": "ORG_NAME",
        "description": "",
        "createdAt": "1626237148461",
        "lastModifiedAt": "1626237149384",
        "properties": {
          "property": [
            {
              "name": "features.hybrid.enabled",
              "value": "true"
            },
            {
              "name": "features.mart.connect.enabled",
              "value": "true"
            }
          ]
        },
        "analyticsRegion": "ANALYTICS_REGION",
        "runtimeType": "HYBRID",
        "subscriptionType": "TRIAL",
        "state": "ACTIVE",
        "billingType": "EVALUATION",
        "expiresAt": "1631421073171",
        "addonsConfig": {
          "advancedApiOpsConfig": {},
          "integrationConfig": {},
          "monetizationConfig": {}
        }
      }
    }

    מיקום אחסון הנתונים

    curl -H "Authorization: Bearer $TOKEN" \
      "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/$LONG_RUNNING_OPERATION_ID"

    הדוגמאות הבאות מראות תשובות אפשריות לבקשה הזו:

    IN_PROGRESS

    אם Apigee עדיין יוצר את הארגון, הוא משיב עם סטטוס IN_PROGRESS. לדוגמה:

    {
      "name": "organizations/ORG_NAME/operations/LONG_RUNNING_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "INSERT",
        "targetResourceName": "organizations/ORG_NAME",
        "state": "IN_PROGRESS"
      }
    }

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

    הסתיים

    כשהארגון מוקצה, הסטטוס של הפעולה הממושכת הוא FINISHED. לדוגמה:

    {
      "name": "organizations/ORG_NAME/operations/LONG_RUNNING_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "INSERT",
        "targetResourceName": "organizations/ORG_NAME",
        "state": "FINISHED"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.Organization",
        "name": "ORG_NAME",
        "description": "",
        "createdAt": "1626237148461",
        "lastModifiedAt": "1626237149384",
        "properties": {
          "property": [
            {
              "name": "features.hybrid.enabled",
              "value": "true"
            },
            {
              "name": "features.mart.connect.enabled",
              "value": "true"
            }
          ]
        },
        "analyticsRegion": "ANALYTICS_REGION",
        "runtimeType": "HYBRID",
        "subscriptionType": "TRIAL",
        "state": "ACTIVE",
        "billingType": "SUBSCRIPTION",
        "apiConsumerDataLocation": "CONSUMER_DATA_REGION",
        "expiresAt": "1631421073171",
        "addonsConfig": {
          "advancedApiOpsConfig": {},
          "integrationConfig": {},
          "monetizationConfig": {}
        }
      }
    }
  6. אפשר להשתמש ב-Apigee organizations API כדי לאחזר מידע על ארגון אחרי שהוא נוצר.

    לדוגמה:

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

    curl -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME"

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

    {
      "name": "apigee-example",
      "createdAt": "1626237148461",
      "lastModifiedAt": "1626237149384",
      "properties": {
        "property": [
          {
            "name": "features.hybrid.enabled",
            "value": "true"
          },
          {
            "name": "features.mart.connect.enabled",
            "value": "true"
          }
        ]
      },
      "analyticsRegion": "us-west1",
      "runtimeType": "HYBRID",
      "subscriptionType": "PAID",
      "projectId": "apigee-example",
      "state": "ACTIVE",
      "billingType": "SUBSCRIPTION",
      "expiresAt": "1631421073171",
      "addonsConfig": {
        "advancedApiOpsConfig": {},
        "integrationConfig": {},
        "monetizationConfig": {}
      }
    }

    מיקום אחסון הנתונים

    curl -H "Authorization: Bearer $TOKEN" \
      "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME"

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

    {
      "name": "apigee-example",
      "createdAt": "1626237148461",
      "lastModifiedAt": "1626237149384",
      "properties": {
        "property": [
          {
            "name": "features.hybrid.enabled",
            "value": "true"
          },
          {
            "name": "features.mart.connect.enabled",
            "value": "true"
          }
        ]
      },
      "analyticsRegion": "us-west1",
      "runtimeType": "HYBRID",
      "subscriptionType": "PAID",
      "projectId": "apigee-example",
      "state": "ACTIVE",
      "billingType": "SUBSCRIPTION",
      "expiresAt": "1631421073171",
      "addonsConfig": {
        "advancedApiOpsConfig": {},
        "integrationConfig": {},
        "monetizationConfig": {}
      }
    }

פתרון בעיות ביצירת ארגון

כשיוצרים ארגון באמצעות Create organizations API, יכול להיות שתתקבל תגובת שגיאה. התגובות ייראו כך:

{
  "error": {
    "code": HTTP_error_code,
    "message": "short_error_message",
    "status": "high_level_error_type",
    "details": [
      {
        "@type": "specific_error_type",
        "detail": "expanded_error_description"
      }
    ]
  }
}

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

קוד שגיאת HTTP שגיאת HTTP תיאור
400 Invalid JSON payload received המבנה של הנתונים בבקשה מכיל שגיאת תחביר או שהנתיב לנקודת הקצה שגוי.
400 Invalid organization ID מזהה הארגון שאתם מבקשים לא יכול להכיל אותיות רישיות או תווים מיוחדים מלבד מקפים. הוא צריך להכיל רק אותיות קטנות, מספרים ו/או מקפים. האורך המקסימלי הוא 32 תווים.
400 Unsupported analytics region לא ציינתם את הערך של המאפיין analyticsRegion בגוף הבקשה, או שהערך שציינתם לא תואם לאפשרויות התקינות.
400 Does not have an Apigee entitlement עדיין לא הפעלתם את האפשרות 'היברידי' בפרויקט שלכם ב-Google Cloud. יכול להיות שמדובר בבעיה בחיוב או בשגיאה אחרת שקשורה לחשבון Google Cloud. למידע נוסף, אפשר לפנות לצוות המכירות של Apigee.
400 'global' violates constraint in constraints/gcp.resourceLocations on the resource projects/PROJECT_ID, Control Plane Region ניסית ליצור ארגון שאולי לא זכאי למינוי בתשלום. בארגונים מסוג EVAL ב-Apigee Hybrid אין תמיכה ב שמירת נתונים באזור מסוים.
400 runtimeType HYBRID is not supported for PAYG_V2, use CLOUD instead: invalid argument ניסית ליצור ארגון בפרויקט עם זכאות לתשלום לפי שימוש (PAYG). אם יש לכם שאלות לגבי זכאות הארגון, אתם יכולים לפנות לנציג האחראי לחשבון Google Cloud שלכם.
401 Request had invalid authentication credentials אסימון האימות gcloud לא תקין או שהוא לא עדכני, או שלא צירפתם אותו לבקשה. צריך ליצור טוקן חדש ולשלוח מחדש את הכתובת.
403 Permission denied on resource project PROJECT_ID יכול להיות ששלחתם בקשה שהכילה מזהה פרויקט או נתיב שגויים.
403 Unable to retrieve project information הארגון עדיין לא נוצר או הוקצה. אפשר לשלוח בקשה אל Operations API כדי לבדוק את הסטטוס של הפעולה הממושכת, כמו שמתואר בשלב 5.
403 Permission denied on resource project organizations/PROJECT_ID/deployedIngressConfig ניסית ליצור ארגון אבל אין לו את ההרשאות המתאימות. אם יש לכם שאלות לגבי זכאות הארגון, אתם יכולים לפנות לנציג האחראי לחשבון Google Cloud שלכם.
409 Organization already exists ניסיתם ליצור יותר מארגון אחד לפרויקט בענן של Google Cloud. אפשר ליצור רק ארגון אחד לכל פרויקט.
409 Org PROPOSED_ORG_NAME already exists ניסית ליצור ארגון עם אותו מזהה של ארגון שכבר קיים. מזהי הארגון צריכים להיות ייחודיים לכל הלקוחות שמשתמשים בפתרון היברידי. שליחה מחדש עם מזהה ארגון מוצע חדש. לדוגמה, אפשר להוסיף ערך מספרי לסוף המזהה הקודם שניסיתם.

השלב הבא

עוברים לשלב 3: יצירת קבוצת סביבות.