この手順では、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_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 API Analytics のリージョンのリストについては、Apigee のロケーションをご覧ください。-
RUNTIMETYPE
(必須):HYBRID
に設定する必要があります。
データ所在地
Linux / macOS
export ORG_NAME=$PROJECT_ID
export ANALYTICS_REGION="ANALYTICS_REGION"
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 ANALYTICS_REGION="ANALYTICS_REGION"
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
と一致している必要があります。ANALYTICS_REGION
: 分析データ ストレージのプライマリ リージョン。使用可能な Apigee API Analytics のリージョンのリストについては、Apigee のロケーションをご覧ください。-
RUNTIMETYPE
:HYBRID
に設定する必要があります。 CONTROL_PLANE_LOCATION
: プロキシ バンドルなどのお客様のコアコンテンツが保存される場所。リストについては、使用可能な Apigee API コントロール プレーンのリージョンをご覧ください。CONSUMER_DATA_REGION
: コントロール プレーン リージョンのサブリージョン。CONTROL_PLANE_LOCATION
とCONSUMER_DATA_REGION
の両方を指定する必要があります。使用可能なコンシューマー データ リージョンのリストについては、Apigee のロケーションをご覧ください。BILLING_TYPE
:"SUBSCRIPTION"
に設定する必要があります。これは、Apigee ハイブリッド組織の請求タイプです。詳しくは、サブスクリプションの利用資格をご覧ください。
次に例を示します。
export ORG_NAME=$PROJECT_ID
export ANALYTICS_REGION="us-west1"
export RUNTIMETYPE=HYBRID
export 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"'", "analyticsRegion":"'"$ANALYTICS_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 です。この 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 が返された長時間実行オペレーションのステータスを確認できます。この操作を行うには、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
組織がプロビジョニングされると、長時間実行オペレーションの状態が
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
組織がプロビジョニングされると、長時間実行オペレーションの状態が
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": "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 |
リクエストする組織 ID に大文字は使用できません。また、ハイフン以外の特殊文字も使用できません。英小文字、数字、ハイフンのみで構成される必要があります。長さは 32 文字以下にする必要があります。 |
400 |
Unsupported analytics region |
リクエストの本文で analyticsRegion の値が指定されていないか、指定された値が有効なオプションではありません。 |
400 |
Does not have an Apigee entitlement |
ステップ 2: Google Cloud プロジェクトの作成で作成した 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 |
組織が作成されていないか、プロビジョニングされていません。ステップ 5 で説明したように、オペレーション API にリクエストを発行して、長時間実行オペレーションのステータスを確認できます。 |
403 |
Permission denied on resource project organizations/PROJECT_ID/deployedIngressConfig |
組織を作成しようとしましたが、組織に適切な利用資格がありません。組織の利用資格に関するご質問については、Google Cloud アカウント担当者にお問い合わせください。 |
409 |
Organization already exists |
Google Cloud プロジェクトに複数の組織を作成しようとしました。1 つのプロジェクトに作成できる組織は 1 つのみです。 |
409 |
Org proposed_org_name already exists |
既存の ID と同じ ID で組織を作成しようとしました。組織 ID はすべてのハイブリッド ユーザーの間で一意にする必要があります。提案された新しい組織 ID で再送信します。たとえば、前に試した ID の末尾に数値を追加します。 |
次のステップ
ステップ 3: 環境グループを作成するに移動します。