ステップ 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 セールスまでお問い合わせください。
400 'global' violates constraint in constraints/gcp.resourceLocations on the resource projects/PROJECT_ID, Control Plane Region 有料サブスクリプションの利用資格がない可能性がある組織を作成しようとしました。タイプ EVAL の Apigee ハイブリッド組織は、 データ所在地をサポートしていません。
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 組織が作成されていないか、プロビジョニングされていません。ステップ 5 で説明したように、Operations 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: 環境グループを作成するに進みます。