Hosted Targets プロキシのデプロイ解除
Hosted Targets アプリケーションが含まれる Edge プロキシをデプロイ解除すると、関連付けられている Hosted Targets アプリもデプロイ解除されますが、基盤となるアプリケーション イメージは削除されません。プロキシを再デプロイすると、Hosted Targets アプリも再デプロイされます。
Hosted Targets プロキシの削除
Hosted Targets プロキシを削除すると、基盤となるランタイム インスタンスがしばらくの間実行を停止します。ただし、アプリケーション コードは維持されます。
ログファイルへのアクセス
ログファイルはデバッグとトラブルシューティングに役立ちます。Hosted Targets のデプロイでは、2 種類のログファイルを表示できます。
- ビルドログ - Hosted Targets アプリのデプロイとビルドに関する出力を表示します。
- ランタイムログ - 実行中の Hosted Targets アプリに関連する出力を表示します。ランタイムログは当該の環境を対象とし、現在デプロイされているプロキシ リビジョンのログ情報を表示します。
Edge UI からのログへのアクセス
- apigee.com/edge にアクセスします。
- ログイン認証情報を入力し、[Sign In] をクリックします。
- サイド ナビゲーション メニューで [Develop] > [API Proxies] を選択します。
- ログを表示するプロキシを選択します。
- [Develop] タブをクリックします。
- ビルドログを表示するには、[Build Logs] をクリックします。
- ランタイムログを表示するには、[Runtime Logs] をクリックします。
API を使用したログへのアクセス
Hosted Targets のログの取得には、Edge Management API も使用できます。詳しくは、キャッシュに保存された Node.js ログを取得するをご覧ください。
プライベート NPM リポジトリの使用
ここでは、開発環境でプライベート NPM リポジトリを使用している場合に、Node.js プロキシを Hosted Targets にデプロイする方法を説明します。
プライベート リポジトリの使用に関して必要になる知識
Node.js アプリを Edge にデプロイするとき、デプロイ プロセスの一環として、プロジェクトのすべての依存関係が自動的にインポートされます。基本的に、Hosted Targets はデプロイ時にコード上で npm install
を実行します。ただし、開発環境でプライベート NPM リポジトリを使用していると、Cloud 内のプライベートの依存関係を解決できません。このような場合の解決策として、デプロイ ユーティリティ apigeetool を使用するときに --bundled-dependencies
オプションを使用します。システムから Edge に Node.js をデプロイするもご覧ください。
apigeetool
で --bundled-dependencies
フラグを使用すると、Node.js アプリが Hosted Targets にアップロードされ、package.json
内の bundledDependencies 配列にリストされたすべてのローカル / プライベート ファイルが zip 圧縮され、バンドルとともにアップロードされます。
一般的な状況ではありませんが、一般公開 NPM リポジトリを内部でミラーリングする場合、限定公開ミラーを指す .npmrc
または package-lock.json
ファイルがデプロイ バンドルに含まれているとデプロイが失敗しますので、ご注意ください。この場合は、デプロイするプロキシ バンドルから .npmrc
または package-lock.json
を除外してください。
プライベート NPM リポジトリを使用するデプロイ
プライベート NPM リポジトリから提供されるモジュールを使用するには、次の手順を使用します。
- NPM にログインします。
npm login
- 次のようにして NPM 認証トークンを取得します。
- .npmrc(~/.npmrc にある)を見つけます。
- .npmrc で、行の末尾にある次のようなトークンを書き留めます。
//registry.npmjs.org/:_authToken=****
- また、認証トークンの一覧表示、作成、取り消しを行うには
npm token <list | create | revoke>
コマンドを使用します。詳細については、npm-token のドキュメントをご覧ください。 - 下記の手順に従って、Key-Value マップの構成ページに移動します。
Edge
Edge UI を使用して Key-Value マップの構成ページにアクセスするには:
- apigee.com/edge にログインします。
- 左側のナビゲーション バーで [Admin] > [Environments] > [Key Value Maps] を選択します。
Classic Edge(Private Cloud)
Classic Edge UI を使用して Key-Value マップの構成ページにアクセスするには:
http://ms-ip:9000
にログインします。ここで、ms-ip は、Management Server ノードの IP アドレスまたは DNS 名です。- 上部のナビゲーション バーで [APIs] > [Environment Configuration] > [Key Value Maps] を選択します。
- [+ Key Value Map] をクリックします。
- [New Key Value Map] ダイアログで、名前を入力して [Encrypted] を選択します。
- [Add] をクリックします。
- 前の手順で取得したか、新しいエントリとして作成した認証トークンを、作成したばかりの各 KVM に追加します。
- app.yaml ファイルで、KVM と、NPM 認証トークンに関連付けられた鍵を参照するエントリを追加します。次のようになります。
- 最上位の name 属性は、作成される環境変数の名前に対応します。
- valueRef の name は、前の手順で作成した KVM に対応します。
- key 属性は、KVM に追加した NPM トークンに関連付けられる鍵に対応します。
- package.json と同じディレクトリに .npmrc ファイルを作成します。このファイルは、次のようになります。
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
あるいは、registry.npmjs.org
を使用していない場合は、.npmrc ファイルに@myscope:registry=https://mycustomregistry.example.org
のような行を追加することでスコープを設定できます。npmrc のドキュメントもご覧ください。 - .npmrc ファイルと app.yaml ファイルを含めて、Node.js プロキシをアップロードまたは更新します。
- 新規または更新されたプロキシがデプロイされ、必要なプライベート リポジトリ モジュールで機能することを確認します。
- プロキシがデプロイされない場合は、ビルドログを調べ、プライベート NPM モジュールのインストールでエラーが発生していないかを確認します。エラーが発生している場合は次のようにします。
- [Develop] タブに .npmrc があることを確認します。
- トークンが有効であることを確認します(KVM にトークンを配置してモジュールをローカルにインストールしてみます)。
- カスタム スコープを使用している場合は、それが設定されていることを確認します。
env: - name: NPM_TOKEN valueRef: name: npm_store key: private_token
ここで
バンドルされた依存関係を使用する際の NPM バージョンの指定
Hosted Targets 環境で依存関係をインストールする場合、デフォルトでは NPM v4 が使用されます。他の NPM バージョンを使用する場合、NPM_VERSION
環境変数で指定する必要があります。環境変数の設定は、アプリケーションのマニフェスト ファイルで行えます。詳細については、マニフェスト ファイルの要素をご覧ください。
バンドルされた依存関係を使用する際に NPM_VERSION
を指定しないと、Hosted Targets ではデフォルトで NPM v4 が使用されます。バンドルされた依存関係を使用しない場合は、Node.js ランタイムで指定された NPM バージョンが使用されます。
バンドルされた依存関係の例
Hosted Targets でバンドルされた依存関係の機能を確認するには、「How to create a Node.js application with Hosted Functions using custom modules」をご覧ください。ヘルスチェック エンドポイントの追加
Node.js アプリケーションにヘルスチェック エンドポイントを実装できます。Apigee でこのエンドポイントを使用して、Node.js アプリケーションが起動した際に、コンテナ内での Node.js アプリケーションの稼働状況を確認します。
デフォルトでは、Apigee には /health
が指定されています。このデフォルトのエンドポイントは、環境変数 HOSTED_TARGET_HEALTH_CHECK_PATH
でエンドポイントを指定することで変更可能です。この変数はアプリケーションのマニフェスト ファイルで設定できます。詳細については、マニフェスト ファイルの要素をご覧ください。
ヘルスチェック エンドポイントの実装は必須ではありません。ただし、実装しない場合は次の点に留意してください。
- Apigee でエンドポイントが参照された際にアプリケーションが終了すると、アプリケーションは想定通りに開始されません。
- エンドポイントが 404 Not Found の HTTP ステータスを返しても問題はありません。
/health
またはHOSTED_TARGET_HEALTH_CHECK_PATH
は、アプリケーションの実行状況の確認にのみ使用され、レスポンス自体は無視されます。