組織、環境、仮想ホストの作成

組織、環境、仮想ホストは、コマンドラインから 1 つずつ作成するほかに、単一のコマンドですべて一度に作成することもできます。さらに、これらのアクションの多くは管理 API を使用して行うこともできます。

動画: Apigee 組織のセットアップと構成の概要を示す短い動画をご覧ください。

組織、環境、仮想ホストを一度に作成する

Apigee Edge に API プロキシを作成するためには、事前に 1 つ以上の組織を作成し、各組織内に 1 つ以上の環境と仮想ホストを作成する必要があります。

通常、組織と環境はまとめて作成します。このプロセスを簡単にするには、apigee-provision ユーティリティを使用します。Edge Management Server のコマンドラインで、このユーティリティを次のように呼び出します。

/opt/apigee/apigee-service/bin/apigee-service apigee-provision setup-org -f configFile

ここで、configFile は構成ファイルへのパスです。構成ファイルは次のような内容になっています。

    # Set Edge sys admin credentials.
    ADMIN_EMAIL=your@email.com
    APIGEE_ADMINPW=admin_password  # If omitted, you are prompted for it.
    NEW_USER="y"
    USER_NAME=orgAdmin@myCo.com
    FIRST_NAME=foo
    LAST_NAME=bar
    USER_PWD="userPword"
    ORG_NAME=example  # lowercase only, no spaces, underscores, or periods.
    ENV_NAME=prod  # lowercase only
    VHOST_PORT=9001
    VHOST_NAME=default
    VHOST_ALIAS="$IP1:9001"
    # Optionally configure TLS/SSL for virtual host.
    # VHOST_SSL=y     # Set to "y" to enable TLS/SSL on the virtual host.
    # KEYSTORE_JAR=   # JAR file containing the cert and private key.
    # KEYSTORE_NAME=  # Name of the keystore.
    # KEYSTORE_ALIAS= # The key alias.
    # KEY_PASSWORD=   # The key password, if it has one.
    # Optionally set the base URL displayed by the Edge UI for an
    # API proxy deployed to the virtual host.
    # VHOST_BASEURL="http://myCo.com"
    # AXGROUP=axgroup-001 # Default value is axgroup-001
    

組織をセットアップするとき、setup-org スクリプトは次のことを行います。

  • 組織を作成します。
  • 組織を「ゲートウェイ」ポッドに関連付けます。この関連付けを変更することはできません。
  • 指定されたユーザーを組織管理者として追加します。指定されたユーザーが存在しない場合は、ユーザーを作成できます。
  • 1 つ以上の環境を作成します。
  • 環境ごとに 1 つ以上の仮想ホストを作成します。
  • 環境とすべての Message Processor を関連付けます。
  • Analytics を有効にします。

apigee-provision ユーティリティを使用する場合、デフォルトでは組織名と環境名は 20 文字以内に制限されます。Edge API を使用して組織または環境を直接作成する場合には、この制限は適用されません。組織名と環境名はどちらも小文字にする必要があります。

組織を作成する

組織を作成するには、次の例のように create-org コマンドを使用します。

/opt/apigee/apigee-service/bin/apigee-service apigee-provision create-org -f configFile

このスクリプトは組織を作成するだけであり、この組織で API 呼び出しを処理するために必要な環境と仮想ホストの追加や構成は行われません。

構成ファイルには、組織の名前とその組織の管理者のメールアドレスが含まれます。name 属性に使用できる文字は a-z0-9\-$% に制限されています。スペース、ピリオド、大文字の英字を名前で使用することはできません。

APIGEE_ADMINPW=admin_password    # If omitted, you are prompted for it.
    ORG_NAME=example  # lowercase only, no spaces, underscores, or periods.
    ORG_ADMIN=orgAdmin@myCo.com

create-org スクリプトは次のことを行います。

  • 組織を作成します。
  • 組織を「ゲートウェイ」ポッドに関連付けます。
  • 指定されたユーザーを組織管理者として追加します。このユーザーはすでに存在していなければなりません。存在しない場合はエラーが返されます。

API 呼び出しを使用して組織を作成する

次の API 呼び出しを使用して組織を作成できます。最初の呼び出しで、組織を作成します。

curl -H "Content-Type:application/xml" -u sysAdminEmail:adminPasswd \
      -X POST http://management_server_IP:8080/v1/organizations \
      -d '<Organization name="org_name" type="paid"/>'

次の呼び出しで、組織をポッドに関連付けます。

curl -H "Content-Type:application/x-www-form-urlencoded" \
      -u sysAdminEmail:adminPasswd -X POST \
      http://management_server_IP:8080/v1/organizations/org_name/pods \
      -d "region=default&pod=gateway"

最後の呼び出しで、既存のユーザーを組織管理者として追加します。

curl -H "Content-Type:application/xml" -u sysAdminEmail:adminPasswd \
      -X POST http://<ms-ip>:8080/v1/organizations/org_name/users/user_email/userroles/ \
      -d '<Roles><Role name="orgadmin"/></Roles>'

ユーザーが存在しない場合は、ユーザーの追加で説明されている呼び出しを使用してユーザーを作成できます。

環境を作成する

既存の組織に環境を作成するには、add-env スクリプトを使用します。

/opt/apigee/apigee-service/bin/apigee-service apigee-provision add-env -f configFile

この構成ファイルには、環境と仮想ホストを作成するために必要な情報が含まれています。

APIGEE_ADMINPW=admin_password  # If omitted, you are prompted for it.
    ORG_NAME=example  # lowercase only, no spaces, underscores, or periods.
    ENV_NAME=prod  # lowercase only
    VHOST_PORT=9001
    VHOST_NAME=default
    VHOST_ALIAS="$IP1:9001"
    # Optionally configure TLS/SSL for virtual host.
    # VHOST_SSL=y     # Set to "y" to enable TLS/SSL on the virtual host.
    # KEYSTORE_JAR=   # JAR file containing the cert and private key.
    # KEYSTORE_NAME=  # Name of the keystore.
    # KEYSTORE_ALIAS= # The key alias.
    # KEY_PASSWORD=   # The key password, if it has one.
    # Optionally set the base URL displayed by the Edge UI for an
    # API proxy deployed to the virtual host.
    # VHOST_BASEURL="http://myCo.com"
    # AXGROUP=axgroup-001 # Default value is axgroup-001
    

add-env コマンドは次のことを行います。

  • 環境を作成します。
  • その環境用の単一の仮想ホストを作成します。
  • その環境を含む組織に関連付けられているポット内のすべての Message Processor に環境を関連付けます。
  • Analytics を有効にします。

API 呼び出しを使用して環境を作成する

別の方法として、次の API 呼び出しを使用して環境を作成することもできます。最初の呼び出しで、環境を作成します。

curl -H "Content-Type:application/xml" -u sysAdminEmail:adminPasswd \
      -X POST http://management_server_IP:8080/v1/organizations/org_name/environments \
      -d '<Environment name="env_name"/>'

次の呼び出しで、環境を Message Processor に関連付けます。この呼び出しは、環境に関連付ける Message Processor のそれぞれに対して行う必要があります。

curl -H "Content-Type:application/x-www-form-urlencoded" \
      -u sysAdminEmail:adminPasswd -X POST \
      http://management_server_IP:8080/v1/organizations/org_name/environments/env_name/servers \
      -d "action=add&uuid=uuid"
    

ここで、uuid は Message Processor の UUID です。該当する UUID を取得するには、次のコマンドを使用します。

curl http://Message_Processor_IP:8082/v1/servers/self

ここで、Message_Processor_IP は Message Processor の IP アドレスです。

次の API 呼び出しで、所定の環境に対して Analytics を有効にします。この API 呼び出しでは、まず、すべてのデータセンターのポッド内で Qpid と Postgres サーバーの存在を確認します。次に、指定された組織と環境の Analytics オンボーディングを開始します。

この構成ファイルの内容は次のとおりです。

ORG_NAME=orgName  # lowercase only, no spaces, underscores, or periods.
    ENV_NAME=envName  # lowercase only

sample.json の内容は次のとおりです。

{
      "properties" : {
        "samplingAlgo" : "reservoir_sampler",
        "samplingTables" : "10=ten;1=one;",
        "aggregationinterval" : "300000",
        "samplingInterval" : "300000",
        "useSampling" : "100",
        "samplingThreshold" : "100000"
      },
      "servers" : {
        "postgres-server" : [ "1acff3a5-8a6a-4097-8d26-d0886853239c", "f93367f7-edc8-4d55-92c1-2fba61ccc4ab" ],
        "qpid-server" : [ "d3c5acf0-f88a-478e-948d-6f3094f12e3b", "74f67bf2-86b2-44b7-a3d9-41ff117475dd"]
      }
    }
    

postgres-servers プロパティには Postgres UUID のカンマ区切りのリストを指定し、qpid-server プロパティには Qpid UUID を指定します。該当する UUID を取得する場合は、次のコマンドを使用します。

Qpid の場合は、次のコマンドを実行します。

curl -u sysAdminEmail:password http://management_server_IP/v1/servers?pod=central

このコマンドの出力は、JSON オブジェクトです。各 Qpid サーバーについて、次の形式の出力が表示されます。

"type" : [ "qpid-server" ],
    "uUID" : "d3c5acf0-f88a-478e-948d-6f3094f12e3b"

Postgres の場合は、次のコマンドを実行します。

curl -u sysAdminEmail:admin_password http://management_server_IP/v1/servers?pod=analytics

各 Postgres サーバーについて、次の形式の出力が表示されます。

"type" : [ "postgres-server" ],
    "uUID" : "d3c5acf0-f88a-478e-948d-6f3094f12e3b"

仮想ホストを作成する

組織の既存の環境内に仮想ホストを作成できます。通常は、1 つの環境が複数の仮想ホストをサポートします。たとえば、ある仮想ホストで HTTP プロトコルをサポートし、同じ環境内の別の仮想ホストで暗号化された HTTPS プロトコルをサポートするといった具合です。

追加の仮想ホストを作成する場合、または仮想ホストのない環境に新しい仮想ホストを作成する場合は、次の API 呼び出しを使用します。

curl -H "Content-Type:application/xml" -u sysAdminEmail:adminPasswd \
      -X POST http://management_server_IP:8080/v1/organizations/org_name/environments/env_name/virtualhosts \
      -d '<VirtualHost name="default"> \
        <HostAliases> \
          <HostAlias>myorg-test.apigee.net</HostAlias> \
        </HostAliases> \
        <Interfaces/> \
        <Port>443</Port> \
      </VirtualHost>'

HTTPS で TLS / SSL を使用するセキュアな仮想ホストの作成など、仮想ホストを作成する方法について詳しくは、Private Cloud 用 API への TLS アクセスの構成をご覧ください。