コマンドラインでのプロキシのデプロイ

このトピックでは、コマンドラインでプロキシをデプロイする方法について説明します。Apigee Edge では、コマンドラインでデプロイする方法として 2 つの選択肢があります。1 つは、Python で記述された Apigee Edge デプロイツールを使用すること、もう 1 つはシェル スクリプトを構成して実行することです。

コマンドラインでデプロイする手法は、システム上のプロキシソース ファイルを直接扱っている場合に使用します。オフラインで作業することには、さまざまな理由があります。例えば、使い慣れた XML エディタを使用したいから、あるいは Java コーディングを必要とするポリシーを開発中のため主に IDE で作業しているから、ということが考えられます。このセクションで説明する手法を使用すると、ソースファイルを選択した API Services 環境にアップロードしてデプロイできます。

主に管理 UI で作業している場合は、UI でのプロキシのデプロイをご覧ください。

Apigee Edge のドキュメントを表示しています。
Apigee X のドキュメントをご確認ください
情報

Apigee Edge Python デプロイツールの実行

Apigee Edge Python デプロイツールは、Edge 管理 API と連携して、API プロキシを読み込んでデプロイします。このツールは、GitHub で配布されている API Platform Samples の一部として入手できます。サンプル API プロキシの使用をご覧ください。

Apigee Edge Python ツールを使用して、API を 1 回のシンプルなプロセスで読み込んで(アップロードして)デプロイします。

このデプロイツールは、API Platform Samples のベース ディレクトリで実行する必要があります。このベース ディレクトリは、setuptools ディレクトリの親ディレクトリです。

次のコマンドで、プロキシ名、Edge のユーザー名とパスワード、Edge の組織と環境、API プロキシの apiproxy" ディレクトリを含むディレクトリへのパスを置き換えます。

python tools/deploy.py -n proxyname -u name:passW -o org -e env -d proxypath -p /

例:

python tools/deploy.py -n weatherapi -u me@myCo.com:foo -o myCo -e test -d weatherapi -p /

このコマンドは、ファイルをデプロイし、それを Apigee Edge 上の組織に push し、指定された環境にデプロイします。

デプロイツールは API プロキシの現在バージョンを自動判定し、既存のリビジョンをデプロイ解除し、リビジョンの上がった API プロキシをデプロイします。

処理が正常に終了すると、以下の形式の出力が表示されます。

Writing ./<proxybasedir>/apiproxy/weatherapi.xml to apiproxy/weatherapi.xml
Writing ./<proxybasedir>/apiproxy/proxies/default.xml to apiproxy/proxies/default.xml
Writing ./<proxybasedir>/apiproxy/targets/default.xml to apiproxy/targets/default.xml
Imported new proxy version 1
Environment: test
  Revision: 1 BasePath = /
  State: deployed

デフォルトで、ツールは API プロキシを https://api.enterprise.apigee.com にアップロードします。この URL は、クラウド上の Edge に対応しています。また、このツールを使用して API プロキシを Edge のオンプレミス バージョンにアップロードすることもできます。その場合は、-h フラグを次のように指定します。

python tools/deploy.py -n weatherapi -u me@myCo.com:foo -o myCo -e test -d weatherapi -p / -h https://192.168.11.111:8080

この例では、Edge Management Server の IP アドレスを指定しています。Management Server の DNS レコードを作成してある場合は、以下の形式の URL を指定できます。

https://ms_URL:8080

以下に、コマンドで使用するフラグの一覧を示します。

  • -n: API プロキシの名前。
  • -u: Apigee Edge 内の組織でアカウントとして使用するユーザー名とパスワード。
  • -o: 使用アカウントが属している組織の名前。
  • -e: API プロキシのデプロイ先環境(test または prod)。
  • -d: API プロキシ ファイルがあるディレクトリへのパス。API プロキシ ファイルは、名前が「apiproxy」のディレクトリに格納されている必要があります。この値は、「apiproxy」ディレクトリを含むディレクトリへのパスで、「apiproxy」ディレクトリそのものへのパスではありません。
  • -p: 受信メッセージをこの API プロキシのデプロイメントへルーティングするためのパターンマッチに使用される URI パス。この値は、デプロイやルーティングに高度な要件がない限り、たいてい「/」に設定できます。API プロキシへのルーティングに使用されるプライマリパスは、API プロキシの ProxyEndpoint 構成ファイルに定義されています。
  • -h: Edge の URL。デフォルトでは、URL は https://api.enterprise.apigee.com で、クラウドの Edge に対応します。オンプレミス デプロイでは、次のように Edge Management Server の URL と、ポート 8080 を使用します。
    https://ms_URL:8080

    または、https://192.168.11.111:8080 のように管理サーバーの IP アドレスを使用します。

デプロイ シェル スクリプトの構成と実行

最も楽なやり方は、サンプル API プロキシに用意されているデプロイ スクリプトを実行することです。このシェル スクリプトは、Apigee Edge Python デプロイツールをラップしています。

/simplyProxy ディレクトリから次のコマンドを実行します。

$ sh deploy.sh

次の出力が得られます。

Enter your password for user {myname} in the Apigee Enterprise organization {org_name}, followed by [ENTER]:

パスワードを入力し、Enter キーを押します。

今度は、以下が表示されます。

Deploying to test on https://api.enterprise.apigee.com using {myname} on enterprise.apigee.com and {org_name} on enterprise.apigee.com

あるいは、次のように表示されることがあります。

Enter your password for user Your USERNAME on enterprise.apigee.com in the Apigee Enterprise organization Your ORG on enterprise.apigee.com, followed by [ENTER]:

これは、プラットフォーム サンプルの配布に含まれている /setup/setenv.sh ファイルを変更する必要があることを意味します。手順については、README か Apigee 管理 API についてをご覧ください。

正常終了すると、デプロイツールは /apiproxy, にあるファイルを zip 形式で圧縮して、できたパッケージを Apigee Edge 上の組織に読み込み、API プロキシを「test」環境にデプロイします。

以上で、API プロキシを呼び出す準備が完了しました。