שלב 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 (חובה): האזור הראשי לאחסון נתוני ניתוח. ברשימת המיקומים של Apigee מפורטים האזורים שבהם אפשר להשתמש ב-Apigee API Analytics.
    • ‫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: המיקום שבו מאוחסן תוכן הליבה של הלקוח, כמו חבילות שרת proxy. רשימת האזורים הזמינים של מישור הבקרה של 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 של הארגונים מגיב בתגובה מה-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. אפשר לבדוק את הסטטוס של הפעולה הממושכת שהמזהה שלה הוחזר על ידי בקשת היצירה. כדי לעשות את זה, משתמשים ב-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",
        "progress": {
          "percentDone": 30
        }
      }
    }

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

    הסתיים

    כשהארגון מוקצה, המצב של הפעולה הממושכת הוא 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": "my-project",
      "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": "my-project",
      "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: יצירת קבוצת סביבות.