Send Docs Feedback

Note: Most user interface tasks can be performed in Edge Classic or the New Edge experience. For an overview, getting started topics, and release notes specific to the New Edge experience, see the docs.

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

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

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

主に管理 UI で作業している場合は、「UI でのプロキシの展開」を参照してください。

The size limit of a proxy bundle is 15 MB.

Apigee Edge Python 展開ツールの実行

Apigee Edge Python 展開ツールは、Edge 管理 API と連携して、API プロキシを読み込み、展開します。このツールは、GitHub で配布されている API Platform Samples の一部として入手できます。「Using the sample API proxies」を参照してください。

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

この展開ツールは、API Platform Samples のベースディレクトリで実行する必要があります。このベースディレクトリは、setup ディレクトリと tools ディレクトリの親ディレクトリです。

以下のコマンドで、プロキシ名、Edge のユーザー名とパスワード、Edge の組織 (organization) と環境 (environment)、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 上の組織にプッシュし、指定された環境に展開します。

展開ツールは 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 管理サーバーの IP アドレスを指定しています。管理サーバーの 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 環境サーバーの URL と、ポート 8080 を使用します。例: https://ms_URL:8080。または、管理サーバーの IP アドレスを使用します。例: https://192.168.11.111:8080。 

展開シェルスクリプトの構成と実行

このセクションで説明しているシェルスクリプトは、配布されている API Platform Samples に含まれています。サンプル配布のダウンロードの詳細については、「Using the sample API proxies」を参照してください。このセクションは、シェルスクリプトが入手済みであることを前提としています。

最も楽なやり方は、サンプル 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 を読むか、「API reference getting started」を参照してください。

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

これで、API プロキシを呼び出す準備は完了です。

Help or comments?