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 を正しく使用するためのいくつかの簡単な手順だけ学べば十分です。基本的に、Hosted Targets 用の Edge プロキシを他の Apigee Edge プロキシと同様に作成、デプロイ、管理します。

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

  • Node.js アプリケーションをローカルで開発およびテストします。
  • アプリケーション プロジェクトのルート ディレクトリにマニフェスト ファイルを作成します。マニフェストは、アプリケーションのビルドとデプロイに必要な情報を指定する YAML ファイルです。
  • ホストされるリソースタイプとして 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 に移行する

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