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

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

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

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

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

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

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

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

以下のコマンドで、プロキシ名、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 上の組織にプッシュし、指定された環境にデプロイします。

デプロイツールは 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

    または、Management Server の IP アドレスを使用します(例: https://192.168.11.111:8080)。

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

最も楽なやり方は、サンプル 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 リファレンスについてを参照してください。

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

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