ステップ 4: 組織を作成する

GCP アカウントとプロジェクトを作成し、API を有効にしました。これで、組織を作成できます。

前提条件

組織を作成するには、次のいずれかが必要です。

  • 無料トライアルを使用している
  • 有料アカウントを持っている

いずれにも該当しない場合は、Apigee セールスチームまでご連絡ください。

新しい組織を作成してプロビジョニングするには:

  1. 次の例のように、コマンドラインで gcloud の認証情報を取得します。

    TOKEN=$(gcloud auth print-access-token)

    トークンが入力されたことを確認するには、次の例のように echo を使用します。

    echo $TOKEN

    エンコードされた文字列が stdout に出力されます。

    詳しくは、gcloud コマンドライン ツールの概要をご覧ください。

  2. 認証された POST リクエストを Create Organizations APIに送信します。

    次の例は、組織を作成するリクエストの構造を示しています。

    curl -H "Authorization: Bearer $TOKEN" -X POST -H "content-type:application/json" \
          -d '{
            "name":"proposed_org_ID",
            "display_name":"display_name",
            "description":"organization_description",
            "analyticsRegion":"analytics_region"
          }' \
          "https://apigee.googleapis.com/v1/organizations?parent=projects/project_ID"

    ここで

    • (必須)proposed_org_ID は、ハイブリッド対応組織に必要なプログラマティック ID です。例: my-hybrid-org

      ステップ 2: GCP プロジェクトを作成するで作成した GCP プロジェクト ID と同じ ID を使用することをおすすめします。ただし、必要であれば別の ID を使用することもできます。

    • (必須)analytics_region は、Analytics のデータ ストレージのプライマリ リージョンです。次のいずれかを選択します。
      asia-east1 australia-southeast1 us-central1
      asia-northeast1 europe-west1 us-east1
      asia-southeast1 europe-west2 us-east4
      us-west1

      このオプションを使用すると、地理的に近いリージョンを選択できます。また、組織に別のストレージ要件がある場合にも、このオプションを使用できます。

    • (必須)project_ID は、新しいハイブリッド対応組織にバインドする GCP プロジェクトです。ステップ 2: GCP プロジェクトを作成するで生成された ID です。
    • (省略可)display_name は組織のわかりやすい名前です。この値は一意である必要はありません。スペースや特殊文字を使用することもできます。例: My Hybrid Organization
    • (省略可)organization_description は、組織の使用目的や説明を表します。例: My first organization

    正常な作成リクエストを受け取ると、Organization API は次のようなメッセージを返します。

    {
          "name": "organizations/organization_ID/operations/long_running_operation_ID",
          "metadata": {
            "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
            "operationType": "INSERT",
            "targetResourceName": "organizations/organization_ID",
            "state": "IN_PROGRESS"
          }
        }

    ここで

    • long_running_operation_ID は、非同期の長時間実行オペレーションの UUID です。この ID を使用して、後で説明する組織作成リクエストのステータスを確認できます。
    • organization_ID は、現在作成中の新しい組織の ID です。

    レスポンスの state プロパティでわかるように、Apigee は新しい組織の作成を開始しています。このため、その状態は IN_PROGRESS になります。この処理には数分かかることがあります。

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

  3. Apigee が最初の作成リクエストで返した ID を持つ長時間実行オペレーションのステータスを確認できます。この操作を行うには、次の例のように Operations API を使用します。
    curl -H "Authorization: Bearer $TOKEN" \
          "https://apigee.googleapis.com/v1/organizations/organization_ID/operations/long_running_operation_ID"

    次の例は、このリクエストに対するレスポンスを示しています。

    FINISHED

    組織がプロビジョニングされている場合、次の例のように、長時間実行オペレーションの状態は FINISHED になります。

    {
            "operations": [
              {
                "name": "organizations/organization_ID/operations/long_running_operation_ID",
                "metadata": {
                  "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
                  "operationType": "INSERT",
                  "targetResourceName": "organizations/organization_ID",
                  "state": "FINISHED"
                },
                "done": true,
                "response": {
                  "@type": "type.googleapis.com/google.cloud.apigee.v1.Organization",
                  "name": "organization_ID",
                  "createdAt": "1572550611",
                  "lastModifiedAt": "1572550611",
                  "displayName": "display_name"
                  "description": "description"
                  "properties": {
                    "property": [
                      {
                        "name": "features.hybrid.enabled",
                        "value": "true"
                      }
                    ]
                  },
                  "analyticsRegion": "us-east1"
                }
              }
            ]
          }

    説明を入力しなかった場合、このフィールドはレスポンスに表示されません。

    これで完了です。新しい組織が作成され、使用できるようになりました。ステップ 5: 環境を追加するに進みます。

    IN_PROGRESS

    Apigee がまだ組織を作成している場合、次の例のように、Apigee は IN_PROGRESS のステータスを返します。

    {
            "name": "organizations/organization_ID/operations/long_running_operation_ID",
            "metadata": {
              "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
              "operationType": "INSERT",
              "targetResourceName": "organizations/organization_ID",
              "state": "IN_PROGRESS"
            }
          }

    少し待ってから、作成プロセスが完了しているかどうか確認します。

組織作成のトラブルシューティング

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"
          }
        ]
      }
    }

次の例は、組織 ID に無効な文字が含まれている場合に返される一般的なエラー レスポンスです(組織 ID に大文字は使用できません)。

{
      "error": {
        "code": 400,
        "message": "invalid Organization ID \"MY-ORG\": \"MY-ORG\" is an invalid Organization ID",
        "status": "INVALID_ARGUMENT",
        "details": [
          {
            "@type": "type.googleapis.com/google.rpc.DebugInfo",
            "detail": "[ORIGINAL ERROR] generic::invalid_argument: invalid Organization ID \"MY-ORG\":
              \"My-ORG\" is an invalid Organization ID [google.rpc.error_details_ext]
              { message: \"invalid Organization ID \\\"MY-ORG\\\": \\\"MY-ORG\\\" is an invalid
              Organization ID\" }"
          }
        ]
      }
    }

この場合、組織の名前を小文字に変更してリクエストを再送信できます。

次の表に、新しい組織の作成時に表示される可能性のあるエラーとその解決方法を示します。

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: GCP プロジェクトを作成するで作成した GCP プロジェクトがハイブリッド対応になっていません。請求に関する問題や、GCP アカウントに関連するエラーが発生している可能性があります。詳しくは、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 にリクエストを送信すると、長時間実行オペレーションのステータスを確認できます。
409 Organization already exists GCP プロジェクトに複数の組織を作成しようとしました。1 つのプロジェクトに作成できる組織は 1 つだけです。
409 Org proposed_organization_ID already exists 既存の ID と同じ ID で組織を作成しようとしました。組織 ID はすべてのハイブリッド ユーザーの間で一意にする必要があります。提案された新しい組織 ID で再送信します。たとえば、前に試した ID の末尾に数値を追加します。

組織情報を取得する

アカウントからアクセスできる組織のリストを取得できます。ID を指定して特定の組織の詳細情報を取得することもできます。これらの操作を実行するには、Organizations API を使用します。

組織のリストを取得する

組織のリストを取得するには:

GET リクエスト(本文なし)を次の List Organizations API エンドポイントに送信します。

https://apigee.googleapis.com/v1/organizations

例:

curl -H "Authorization: Bearer $TOKEN" "https://apigee.googleapis.com/v1/organizations"

リクエストのレスポンスでは、アクセス可能なハイブリッド対応組織の配列が JSON 形式で返されます。

次の例は、my-org-42 という組織を含むレスポンスです。

{
      "organizations": [
        {
          "organization": "my-org-42",
          "projectIds": [
            "my-project"
          ]
        }
      ]
    }

詳細情報を取得する

1 つの組織の詳細情報を取得するには:

GET リクエスト(本文なし)を次の Get Organizations API エンドポイントに送信します。

https://apigee.googleapis.com/v1/organizations/organization_ID

次の例では、my-org-42 という組織の詳細情報を取得しています。

curl -H "Authorization: Bearer $TOKEN"
      "https://apigee.googleapis.com/v1/organizations/my-org-42"

リクエストのレスポンスでは、指定した組織に関する詳細情報が JSON 形式で返されます。

次の例は、my-org-42 という組織に関する詳細情報です。

{
      "name": "my-org-42",
      "createdAt": "1572550611",
      "lastModifiedAt": "1572550611",
      "environments": [
        "my-environment"
      ],
      "analyticsRegion": "us-east1"
    }

次のステップ

1 2 3 4 次: (5)環境を追加する