步驟 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 (必要):數據分析資料儲存空間的主要區域,變數會設為下列任一項:
      asia-northeast1 asia-south1 asia-east1 asia-southeast1
      australia-southeast1 us-central1 us-east1 us-west1
      asia-southeast2 europe-west1 europe-west2

      請選擇地理位置相近的區域,或符合貴機構儲存空間需求的區域。

    • RUNTIMETYPE (必要):必須設為 HYBRID
  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"

    建立要求成功後,組織 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。您可以使用這個 ID 查看機構建立要求的狀態 (請參閱步驟 5)。
    • org_name 是目前正在建立的新機構 ID。

    如回應中的 state 屬性所示,Apigee 已開始建立新機構,因此其狀態為 IN_PROGRESS。這項作業可能需要幾分鐘才能完成。

    如果系統顯示錯誤訊息,請參閱「排解機構建立問題」一文。

  4. 將長時間執行作業 ID 儲存至環境變數。這對日後的管理工作很有幫助。

    語法

    export LONG_RUNNING_OPERATION_ID=LONG_RUNNING_OPERATION_ID

    範例

    export LONG_RUNNING_OPERATION_ID=6abc8a72-46de-f9da-bcfe-70d9ab347e4f
  5. 您可以檢查建立要求傳回 ID 的長時間執行作業狀態。方法就是使用 operations API。例如:
    curl -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/$LONG_RUNNING_OPERATION_ID"

    以下範例顯示對此要求的可能回應:

    IN_PROGRESS

    如果 Apigee 仍在建立機構,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": {}
        }
      }
    }
  6. 您可以使用 Apigee 組織 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": "TRIAL",
      "projectId": "apigee-example",
      "state": "ACTIVE",
      "billingType": "EVALUATION",
      "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 您要求的機構 ID 不得包含大寫字母或連字號以外的任何特殊字元。只能使用小寫英文字母、數字和/或連字號。長度上限為 32 個半形字元。
400 Unsupported analytics region 您沒有在要求主體中指定 analyticsRegion 的值,或是指定的值不是有效的選項。
400 Does not have an Apigee entitlement 您的 Google Cloud 專案 (您在步驟 2:建立 Google Cloud 專案中建立) 尚未啟用混合式功能。這可能表示您的帳單有問題,或與 Google Cloud 帳戶相關的其他錯誤。如需更多資訊,請與 Apigee 銷售團隊聯絡。
401 Request had invalid authentication credentials 您的 gcloud 驗證權杖無效或過期,或是您未在要求中加入權杖。產生新的權杖,然後重新傳送地址。
403 Permission denied on resource project project_ID 您可能傳送的要求含有錯誤的專案 ID 或路徑。
403 Unable to retrieve project information 機構尚未建立或佈建。您可以向 Operations API 發出要求,藉此檢查長時間執行作業的狀態,如步驟 5 所述。
409 Organization already exists 您嘗試為 Google Cloud 專案建立多個機構。每個專案只能建立一個機構。
409 Org proposed_org_name already exists 您嘗試建立的機構 ID 與現有機構 ID 相同。在所有混合型客戶中,機構 ID 不得重複。重新提交新的建議機構 ID,例如在先前嘗試的 ID 結尾處附加數值。

後續步驟

請參閱步驟 3:建立環境群組