Hosted Targets の概要

Hosted Targets は、Apigee によってホストされるネイティブのランタイム環境内で Node.js アプリケーションを実行できるようにします。Hosted Targets の目標は、「Edge API プロキシがアプリケーションをターゲット サービスとして呼び出すことのできる、ネイティブで安全、かつスケーラブルな切り離された環境にアプリケーションをデプロイできるようにする」というシンプルなものです。

次の図に示すように、Edge API プロキシは Hosted Targets 環境にデプロイされた Node.js アプリケーションを呼び出します。Hosted Targets 環境の範囲は、「Apigee organization:environment」(Apigee 組織:環境)内に設定されていることに注意してください。

Edge API プロキシが、適切に構築およびデプロイされた Hosted Targets アプリケーションと通信できるようにするには、プロキシのターゲット エンドポイントでのシンプルな構成が必要です。開始するには、Hosted Targets のチュートリアルをご覧ください。

Hosted Targets でサポートされるアプリケーション ランタイム

現時点では、Node.js アプリのみ Hosted Targets にデプロイできます。

Hosted Targets をインストールする

Hosted Targets はすべての Edge Public Cloud 組織で使用できます。Hosted Targets を使用するために何もインストールする必要はありません。

Hosted Targets が有効であることを確認する

Hosted Targets が組織で有効になっていることを確認するには、組織の詳細を取得し、features.isEdgeFunctionsEnabled プロパティが true に設定されていることを確認します。このプロパティは読み取り専用です。

次に例を示します。

https://api.enterprise.apigee.com/v1/organizations/myorg

      {
         "createdAt":1507572884047,
         "createdBy":"jdoe@apigee.com",
         "displayName":"myorg",
         "environments":[
            "prod",
            "dev",
            "test",
            "portal"
         ],
         "lastModifiedAt":1507578673194,
         "lastModifiedBy":"jdoe@apigee.com",
         "name":"jdoe",
         "properties":{
            "property":[
               {
                  "name":"features.isSmbOrganization",
                  "value":"false"
               },
               {
                  "name":"self.service.virtual.host.enabled",
                  "value":"true"
               },
               {
                  "name":"features.isCpsEnabled",
                  "value":"true"
               },
               {
                  "name":"features.isEdgeFunctionsEnabled",
                  "value":"true"
               }
            ]
         },
         "type":"paid"
      }
      

Hosted Targets について知っておくべきこと

Hosted Targets は、Apigee 固有のランタイム テクノロジーに依存しないネイティブ環境内で Node.js アプリケーションを実行できるようにします。デプロイする前にアプリをローカルでデバッグおよびテストすることができ、デプロイされたバージョンがローカルとまったく同じように動作することを保証できます。デプロイ時には、Hosted Targets 内でアプリケーションを実行するためのアプリケーション ランタイム バージョンを選択できます。たとえば、Node.js アプリを v8.10.0 環境で実行するように具体的に選択できます。

制限

Hosted Targets の使用制限については、Apigee プロダクトの制限をご覧ください。

基本的な手順

Edge プロキシ開発について十分な知識がある場合は、Hosted Targets を正しく使用するためのいくつかの簡単な手順だけ学べば十分です。基本的に、他の Apigee Edge プロキシについて行う場合と同じように Hosted Targets 用の Edge プロキシを作成、デプロイ、管理します。

Hosted Targets を使用するには、以下のタスクを行う必要があります。チュートリアルで、これらの各タスクについて詳しく説明します。

  • Node.js アプリケーションをローカルで開発およびテストします。
  • アプリケーション プロジェクトのルート ディレクトリにマニフェスト ファイルを作成します。マニフェストは、アプリケーションのビルドとデプロイに必要な情報を指定する YAML ファイルです。
  • アプリケーションを hosted リソースタイプとして Edge プロキシに追加します。
  • プロキシのターゲット エンドポイントに、空の <HostedTarget/> タグを追加します。このタグは、Node.js アプリケーションを Hosted Targets 環境にデプロイするように Edge に指示します。次に例を示します。
  •     <?xml version="1.0" encoding="UTF-8"?>
        <TargetEndpoint name="default">
           <PreFlow name="PreFlow">
              <Request />
              <Response />
           </PreFlow>
           <PostFlow name="PostFlow">
              <Request />
              <Response />
           </PostFlow>
           <Flows />
           <HostedTarget />
        </TargetEndpoint>

Hosted Targets アプリケーションのスコープ

Hosted Targets アプリケーションのスコープは、Edge 組織環境に設定されています。このスコープは、あらゆる Edge プロキシと同じです。

Hosted Targets アプリケーションはプロキシデータにアクセスできるか

Hosted Targets アプリは現在、プロキシ ランタイム環境にアクセスできません。つまり、フロー変数、キャッシュ、およびその他のエンティティに Hosted Targets アプリケーションから直接アクセスすることはできません。

組み込み型の Node.js(Edge の従来の Trireme ベースの Node.js サポート)では、apigee-access を使用して、フロー変数および Edge 内のその他のエンティティにアクセスできます。ただし、Hosted Targets は Node.js デプロイ用の apigee-access モジュールをサポートしていません。 apigee-access の不備を回避できますかもご覧ください。

既存のアプリケーション コードを Hosted Targets に移行する

現時点では、従来の Trirem ベースの組み込み型 Node.js アプリケーションから Hosted Targets への自動化された移行パスはありません。ただし、既存のアプリケーション コードを Hosted Targets に手動で変換することはできます。たとえば、既存の Node.js プロキシから Hosted Targets プロキシに移行するをご覧ください。