apigee-adminapi.sh ユーティリティの使用

Edge for Private Cloud v. 4.17.01

apigee-adminapi.sh ユーティリティを使用すると、Edge 管理 API を呼び出して実行する Edge 構成タスクと同じタスクを実行できます。apigee-adminapi.sh ユーティリティの利点は次のとおりです。

  • シンプルなコマンドライン インターフェースを使用する
  • タブベースのコマンド補完を実装します。
  • ヘルプと使用状況に関する情報を提供します。
  • API を試すことを選択した場合、対応する API 呼び出しを表示できる

apigee-adminapi.sh ユーティリティは、apigee-provision ユーティリティの代わりになるものではありません。apigee-provision ユーティリティは、実際には apigee-adminapi.sh ユーティリティを使用してタスクを実行します。

両者の主な違いは次のとおりです。

  • apigee-adminapi.sh ユーティリティは、個々の Edge API 呼び出しを置き換えるアトミック関数を実行します。たとえば、組織、環境、仮想ホストを作成するには、3 つの API 呼び出しに対応する 3 つの apigee-adminapi.sh コマンドが必要です。
  • apigee-provision ユーティリティは、1 つのコマンドで完全な高レベルのオペレーションを実行するように設計されています。たとえば、必要なすべての情報を含む構成ファイルを渡すことで、1 つの apigee-provision コマンドで組織、環境、仮想ホストを作成できます。

Edge のドキュメントでは、必要に応じて両方のユーティリティを使用しています。

apigee-adminapi.sh のインストール

apigee-adminapi.sh ユーティリティは、apigee-provision ユーティリティまたは apigee-validate ユーティリティをインストールすると自動的にインストールされます。

このユーティリティは次の場所にインストールされます。

/opt/apigee/apigee-adminapi/bin/apigee-adminapi.sh

apigee-adminapi.sh の構文

apigee-adminapi.sh ユーティリティでは、シンプルなコマンドライン構文を使用します。いつでも、Tab キーを使用して、使用可能なコマンド オプションを一覧表示するプロンプトを表示できます。

使用可能なすべてのコマンドを表示するには、オプションを指定せずにユーティリティを呼び出します。

> apigee-adminapi.sh 

apigee-adminapi.sh と入力した後に Tab キーを押すと、使用可能なオプションのリストが表示されます。

analytics  classification  logsessions  regions  securityprofile  userroles
buildinfo  GET             orgs         runtime  servers          users

Tab キーを押すと、コマンドのコンテキストに基づいてオプションが表示されます。入力後に Tab キーを押すと、次のようになります。

> apigee-adminapi.sh orgs

orgs コマンドを完了するためのオプションが表示されます。

add  apis  apps  delete  envs  list  pods  userroles

-h オプションを使用すると、コマンドのヘルプを表示できます。たとえば、次のように -h オプションを使用します。

> apigee-adminapi.sh orgs -h

このユーティリティは、orgs コマンドで使用可能なすべてのオプションに関する完全なヘルプ情報を表示します。出力の最初の項目は、"orgs add" コマンドのヘルプを示しています。

+++++++++++++++++++++++++++++++++++++++++++
orgs add
  Required:
    -o ORG Organization name
  Optional:
    -H HEADER add http header in request
    --admin ADMIN_EMAIL admin email address
    --pwd ADMIN_PASSWORD admin password
    --host EDGE_SERVER edge server to make request to
    --port EDGE_PORT port to use for the http request
    --ssl set EDGE_PROTO to https, defaults to http
    --debug ( set in debug mode, turns on verbose in curl )
    -h      Displays Help

コマンドライン スイッチと環境変数を使用したパラメータの設定

コマンドライン スイッチまたは環境変数を使用して、コマンドのすべてのパラメータを入力する必要があります。必要に応じて、コマンドライン スイッチの前に 1 つのダッシュ(-)または 2 つのダッシュ(--)を付けます。

たとえば、上記の「orgs add」コマンドのヘルプから、次のいずれかの方法で組織名を指定できます。

  • -o コマンドライン スイッチを使用する。
    > apigee-adminapi.sh orgs -o testOrg
  • ORG という名前の環境変数を設定します。
    > export ORG=testOrg
    > apigee-adminapi.sh orgs

コマンドに必要なパラメータを省略すると、不足しているパラメータを説明するエラー メッセージが表示されます。たとえば、組織の作成時に Edge Management Server を指定する --host または EDGE_SERVER 環境変数を省略すると、次のエラー メッセージが表示されます。

Error with required variable or parameter
ADMIN_PASSWORD....OK
ADMIN_EMAIL....OK
EDGE_SERVER....null

環境変数として設定することが多い 2 つの一般的なパラメータは、システム管理者のメールアドレスと Management Server の IP アドレスです。

> export ADMIN_EMAIL=foo@bar.com
> export EDGE_SERVER=192.168.56.101

apigee-adminapi.sh ユーティリティにファイルを渡す

apigee-adminapi.sh ユーティリティ コマンドの一部は、リクエスト本文を受け取る PUT および POST API 呼び出しに対応しています。たとえば、仮想ホストの作成は、リクエスト本文に仮想ホストに関する情報を必要とする POST API 呼び出しに対応します。

apigee-adminapi.sh ユーティリティを使用して仮想ホストを作成する場合、またはリクエスト本文を受け取るコマンドを使用する場合は、以下に示すように、必要なすべての情報をコマンドラインで渡すことができます。

> apigee-adminapi.sh orgs envs virtual_hosts add -e prod -o testOrg --host localhost --admin foo@bar.com -v myVHostUtil -p 9005 -a 192.168.56.101:9005

または、POST のリクエスト本文に含まれるものと同じ情報を含むファイルを渡すこともできます。たとえば、次のコマンドは、仮想ホストを定義するファイルを受け取ります。

> apigee-adminapi.sh orgs envs virtual_hosts add -e prod -o testOrg --host localhost --admin foo@bar.com -f vhostcreate

ここで、ファイル vhostcreate には、呼び出しの POST 本文が含まれています。この例では、XML 形式のリクエスト本文です。

<VirtualHost name="myVHostUtil">
   <HostAliases>
     <HostAlias>192.168.56.101:9005</HostAlias>
   </HostAliases>
   <Interfaces/>
   <Port>9005</Port>
</VirtualHost>

デバッグ情報と API 情報を表示する

apigee-adminapi.sh ユーティリティの --debug オプションを使用して、コマンドに関する詳細情報を表示します。この情報には、オペレーションを実行するために apigee-adminapi.sh ユーティリティによって生成された cURL コマンドが含まれます。

たとえば、次のコマンドでは --debug オプションを使用しています。

> apigee-adminapi.sh orgs add -o testOrg2 --admin foo@bar.com --host localhost --debug

生成された cURL コマンドを含む次の出力が表示されます。

curl -H Content-Type: application/xml -v -X POST     -s -k -w \n==> %{http_code} 
-u ***oo@bar.com:*****     http://localhost:8080/v1/o -d <Organization name="testOrg2" 
type="paid"/>
* About to connect() to localhost port 8080 (#0)
*   Trying ::1... connected
* Connected to localhost (::1) port 8080 (#0)
* Server auth using Basic with user 'foo@bar.com'
> POST /v1/o HTTP/1.1
> Authorization: Basic c2dp234234NvbkBhcGlnZ2342342342342341Q5
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1
Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: localhost:8080
> Accept: */*
> Content-Type: application/xml
> Content-Length: 43
>
} [data not shown]
< HTTP/1.1 201 Created
< Content-Type: application/json
< Date: Tue, 03 May 2016 02:08:32 GMT
< Content-Length: 291
<
{ [data not shown]
* Connection #0 to host localhost left intact
* Closing connection #0