在這個步驟中,您將建立 Apigee 組織。
如要建立新組織並佈建:
-
在指令列中,使用下列指令取得
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%
這會以編碼字串的形式顯示權杖。
-
在步驟 1 中,您已建立
PROJECT_ID環境變數。新增下列環境變數。根據您需要的機構類型,選取對應的分頁標籤:「無資料落地」或「有資料落地」 :無資料落地
Linux / MacOS
export ORG_NAME=$PROJECT_IDexport ANALYTICS_REGION="ANALYTICS_REGION"export RUNTIMETYPE=HYBRIDWindows
set ORG_NAME=$PROJECT_IDset ANALYTICS_REGION="ANALYTICS_REGION"set RUNTIMETYPE=HYBRID其中:
ORG_NAME(必填):這個值必須與PROJECT_ID相符。ANALYTICS_REGION(必要):儲存數據分析資料的主要區域。如需可用的 Apigee API Analytics 區域清單,請參閱「 Apigee 位置」。-
RUNTIMETYPE(必要):必須設為HYBRID。
資料落地設定
Linux / MacOS
export ORG_NAME=$PROJECT_IDexport RUNTIMETYPE=HYBRIDexport CONTROL_PLANE_LOCATION="YOUR_CONTROL_PLANE_LOCATION"export CONSUMER_DATA_REGION="YOUR_CONSUMER_DATA_REGION"export BILLING_TYPE="SUBSCRIPTION"Windows
set ORG_NAME=$PROJECT_IDset RUNTIMETYPE=HYBRIDset 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_IDexport RUNTIMETYPE=HYBRIDexport CONSUMER_DATA_REGION="us-west1"export CONTROL_PLANE_LOCATION="us"export BILLING_TYPE="SUBSCRIPTION" - 呼叫下列 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"如果建立要求成功,Organizations 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。這項作業可能需要幾分鐘才能完成。如果收到錯誤訊息,請參閱「排解機構建立問題」。
- 將長時間執行的作業 ID 儲存至環境變數。這在日後執行管理工作時會很實用。
語法
export LONG_RUNNING_OPERATION_ID=LONG_RUNNING_OPERATION_ID
範例
export LONG_RUNNING_OPERATION_ID=6abc8a72-46de-f9da-bcfe-70d9ab347e4f
- 您可以查看長時間執行的作業狀態,其 ID 是由建立要求傳回。方法是使用作業 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": {} } } }
資料落地設定
curl -H "Authorization: Bearer $TOKEN" \ "https://$CONTROL_PLANE_LOCATION-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", "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": {} } } }
- 建立組織後,您可以使用 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": "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": {} } }
排解組織建立問題
使用建立組織 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 雲端專案尚未啟用混合功能。這可能代表帳單有問題,或 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 |
您傳送的要求可能包含不正確的專案 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 |
您嘗試建立的組織 ID 與現有組織相同。所有混合式客戶的組織 ID 均不得重複。請重新提交新的建議組織 ID,例如在先前嘗試使用的 ID 結尾附加數值。 |
Next step
請前往步驟 3:建立環境群組。