ステップ 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 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_LOCATIONCONSUMER_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"
    
  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"'",
        "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 になっています。この処理には数分かかることがあります。

    エラーが発生した場合は、組織作成のトラブルシューティングをご覧ください。

  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 でまだ組織が作成中の場合は、ステータス 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": {}
        }
      }
    }
  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": "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: 環境グループを作成するに移動します。