Anleitungen zu gehosteten Zielen

Sie sehen sich die Dokumentation zu Apigee Edge an.
Rufen Sie die Dokumentation zu Apigee X auf.
Weitere Informationen

In den folgenden Anleitungen wird beschrieben, wie Sie Node.js-Anwendungen mithilfe von gehosteten Zielen, einer nativen Node.js-Laufzeitumgebung, die von Apigee gehostet wird, in Edge bereitstellen.

In den Anleitungen werden die folgenden Aufgaben behandelt:

  • Bereitstellen einer Node.js-Anwendung für gehostete Ziele mithilfe der Edge-Benutzeroberfläche
  • Node.js-Anwendung vom lokalen Entwicklungscomputer für gehostete Ziele bereitstellen
  • Migrieren eines vorhandenen Proxys mit einer traditionellen Edge-Node.js-Zielimplementierung zu gehosteten Zielen.

Node.js-Anwendung über die Edge-Benutzeroberfläche auf gehosteten Zielen bereitstellen

In dieser Anleitung stellen Sie mit der Edge-Benutzeroberfläche eine einfache Node.js-Anwendung auf gehosteten Zielen bereit. Am Ende der Anleitung wissen Sie, wie die grundlegende Struktur und der Inhalt eines Proxys für gehostete Ziele aussehen und wie Sie auf Bereitstellungs- und Build-Protokolldateien zugreifen.

Anmelden

  1. Rufen Sie apigee.com/edge auf.
  2. Geben Sie Ihre Apigee-Anmeldedaten ein, um sich anzumelden.

Neuen Proxy erstellen

  1. Wählen Sie im seitlichen Navigationsmenü Entwickeln > API-Proxys aus.
  2. Klicken Sie auf + Proxy.
  3. Wählen Sie auf der Seite „Proxy erstellen“ die Option Gehostetes Ziel aus.
  4. Klicken Sie auf Weiter.
  5. Geben Sie im Feld Proxy-Name hello-hosted-targets ein.
  6. Achten Sie darauf, dass Hello World ausgewählt ist.
  7. Klicken Sie auf Weiter.
  8. Wählen Sie auf der Seite „Sicherheit“ für die Autorisierung die Option Pass through (none) (Durchgehen (keine)) aus.
  9. Klicken Sie auf Weiter.
  10. Klicken Sie auf Weiter.
  11. Achten Sie darauf, dass auf der Seite „Build“ die Testumgebung ausgewählt ist. Der Proxytyp ist Gehostete Ziele.
  12. Klicken Sie auf Erstellen und bereitstellen. Es kann einige Minuten dauern, bis die Proxybereitstellung abgeschlossen ist.
  13. Nachdem der Proxy bereitgestellt wurde, klicken Sie unten auf der Seite auf Proxy für hello-hosted-targets ansehen.
  14. Den API-Proxy aufrufen. Am einfachsten rufen Sie dazu den Tab Trace auf, starten eine Trace-Sitzung und klicken auf Senden. Sie sollten den Status 200 mit der folgenden Antwort erhalten:
    {"date":"2018-09-26T14:23:04.550Z","msg":"Hello, World!"}

Proxy untersuchen

  1. Klicken Sie in der Edge-Benutzeroberfläche auf den Tab Entwickeln.
  2. Wählen Sie im Navigator unter „Zielendpunkte“ die Option Standard aus.
  3. Im Code-Editor sehen Sie, dass sich unter dem Element <TargetEndpoint> ein leeres untergeordnetes Element <HostedTarget/> befindet. Dieses leere Tag ist erforderlich. Sie teilt Edge mit, dass das Ziel des Proxys eine Anwendung ist, die in der Umgebung mit gehosteten Zielen bereitgestellt wird.

  4. Beachten Sie im Navigationsbereich den Inhalt des Bereichs Scripts. Die Node.js-Anwendungsdateien werden unter dem Label gehostet aufgeführt.

  5. Überprüfen Sie in der Edge-Benutzeroberfläche die Dateien, die in den Skripts unter gehostet aufgeführt sind:
    • Die Datei app.yaml enthält Konfigurationsinformationen. Beispielsweise können Sie Umgebungsvariablen hinzufügen, die der Node.js-Anwendung zur Laufzeit zur Verfügung stehen. Sie müssen diese Datei für dieses Beispiel nicht ändern.
    • Die Datei index.js ist die Hauptdatei der Node.js-Anwendung.
    • Wenn Ihre App Modulabhängigkeiten hat, müssen diese in package.json aufgeführt sein.

Logdateien ansehen

Anwendungslogdateien können beim Beheben von Problemen hilfreich sein, die während der Build-Phase und auch während der Laufzeit auftreten.

  1. Klicken Sie in der Edge-Benutzeroberfläche auf den Tab Entwickeln.
  2. Klicken Sie auf Build-Logs, um das Build-Log aufzurufen.
  3. Klicken Sie auf Laufzeitlogs, um das Bereitstellungsprotokoll aufzurufen.

    Siehe auch Auf Protokolldateien zugreifen.

Zusammenfassung

  • Sie haben eine einfache Node.js-Anwendung in der Umgebung von gehosteten Zielen bereitgestellt und in der Edge-Benutzeroberfläche getestet.
  • Sie haben gelernt, dass für einen gehosteten Targets-Proxy im Zielendpunkt ein spezielles leeres Tag namens <HostedTarget/> erforderlich ist.
  • Sie haben gelernt, dass Edge Modulabhängigkeiten automatisch für Sie lädt und dass diese Abhängigkeiten in der package.json-Datei aufgeführt sein müssen.
  • Außerdem haben Sie gelernt, wie Sie Build- und Laufzeit-Logdateien überprüfen.

Node.js von Ihrem System in Edge bereitstellen

In diesem Abschnitt wird beschrieben, wie Sie mit apigeetool eine eigenständige Node.js-Anwendung von Ihrem lokalen System auf gehostete Ziele bereitstellen. Das apigeetool-Dienstprogramm bündelt die Node.js-App in einem neuen Hosted Targets-Proxy und stellt ihn in Edge bereit.

Apigeetool installieren

Die Verwendung von apigeetool ist die empfohlene Methode für Entwickler, um Proxycode in Edge bereitzustellen. Führen Sie den folgenden NPM-Befehl aus, um apigeetool zu installieren:

npm install -g apigeetool

Node.js-Anwendung erstellen

Der Code für eine einfache Node.js-Anwendung wird Ihnen zur Verfügung gestellt.

  1. Erstellen Sie ein Verzeichnis für die Node.js-Anwendung. Nennen Sie es node-hosted-express.
  2. cd in das neue Verzeichnis ein.
  3. Erstellen Sie eine Datei mit dem Namen index.js und kopieren Sie diesen Code in diese.
  4. var express = require('express')
    var app = express()
    
    app.get('/', function(req, res) {
        res.json({
            hello: "Hello World!"
        })
    })
    
    app.get('/hello/:name', function(req, res) {
        var name = req.params.name
        res.json({
            hello: "hello " + name
        })
    })
    
    var server = app.listen(process.env.PORT || 9000, function() {
        console.log('Listening on port %d', server.address().port)
    })
    
  5. Erstellen Sie eine Datei namens package.json und kopieren Sie diesen Code hinein. Beachten Sie, dass das Express-Modul als Abhängigkeit aufgeführt ist.
  6. {
        "name": "hello-world",
        "version": "1.0.0",
        "main": "index.js",
        "scripts": {
            "start": "node index.js --use_strict"
        },
        "author": "",
        "license": "",
        "dependencies": {
            "express": "^4.16.0"
        }
    }
    
  7. Erstellen Sie eine Datei mit dem Namen app.yaml und kopieren Sie den folgenden Code hinein:
  8. runtime: node
    runtimeVersion: 8
    application: my-express-app
    env:
      - name: NODE_ENV
        value: production
      - name: LOG_LEVEL
        value: 3
    
  9. Das Verzeichnis muss so aussehen:
    ls
    app.yaml index.js package.json
    

Überprüfen der erforderlichen Verzeichnisstruktur für den Anwendungscode

Ihre Node.js-Anwendung muss dieselbe Struktur wie eine standardmäßige Node.js-Anwendung haben. Achten Sie jedoch darauf, dass Sie vor der Bereitstellung mit apigeetool in Edge die folgenden Anforderungen erfüllen:

  • Die Manifestdatei app.yaml ist erforderlich und muss sich im Stammverzeichnis Ihrer App befinden. Weitere Informationen zu dieser Datei finden Sie unter Manifestdatei.
  • Eine package.json-Datei ist erforderlich. Sie muss alle Abhängigkeiten enthalten, die Ihre App benötigt.
  • Ein Ordner node_modules ist nicht erforderlich. Edge führt npm install für Sie aus, wenn die Node.js-App bereitgestellt wird. Die Abhängigkeiten werden aus package.json abgerufen. Sie müssen node_modules nur dann explizit angeben, wenn Sie benutzerdefinierte Module haben, die nicht über npm verfügbar sind.

Proxy bereitstellen

  1. Wechseln Sie in einem Terminal mit cd zum Stammverzeichnis Ihrer Node.js-Anwendung.
  2. Führen Sie apigeetool mit dem Befehl deploydeploytarget aus:
  3. apigeetool deployhostedtarget -o org -e env -n proxy-name -b /node-hosted-express -u username

    Dabei ist -n der Name, den Sie dem neuen Proxy zuweisen möchten. Er muss innerhalb der Organisation eindeutig sein. Der Name darf nur die folgenden Zeichen enthalten: a-z0-9._\-$%

    Beispiel:

    apigeetool deployhostedtarget -o myorg -e test -n node-hosted-express -b /node-hosted-express -u jdoe@apigee.com

    Weitere Informationen zur Verwendung von apigeetool finden Sie unter https://github.com/apigee/apigeetool-node.

Proxy testen

Sie können den Proxy mit einem cURL-Befehl, mit einem REST-Client wie Postman oder in der Edge-Benutzeroberfläche im Trace-Tool testen. Hier ist ein Beispiel für einen cURL-Befehl.

curl http://myorg-test.apigee.net/node-hosted-express
     {"date":1506992197427,"msg":"hello-world"}

Build-Logs abrufen

Build-Logs zeigen die Ausgabe, die sich auf die Bereitstellung und Erstellung der Node.js-App bezieht. Siehe auch Protokolldateien.

apigeetool getlogs -u username -o org -e env --hosted-build -n proxy-name

Beispiel:

apigeetool getlogs -u jdoe@apigee.com -o myorg -e test --hosted-build -n node-hosted-express

Laufzeitlogs abrufen

Laufzeitprotokolle enthalten die Ausgabe, die sich auf die laufende Anwendung bezieht. Sie sind auf die Umgebung beschränkt und geben Protokolle für die aktuell bereitgestellte Proxyversion zurück. Siehe auch Protokolldateien.

apigeetool getlogs -u username -o org -e env --hosted-runtime -n proxy-name

Beispiel:

apigeetool getlogs -u jdoe@apigee.com -o myorg -e test --hosted-runtime -n node-hosted-express

Proxy in der Edge-Benutzeroberfläche aufrufen

Nach einer erfolgreichen Bereitstellung können Sie Ihren Proxy im API-Proxies-Teil der Edge-Benutzeroberfläche anzeigen und bearbeiten.

Vorhandenen Node.js-Proxy zu einem Hosted Targets-Proxy migrieren

In diesem Abschnitt wird beschrieben, wie Sie einen vorhandenen Edge API-Proxy, der die traditionelle Node.js-Zielimplementierung verwendet, manuell zu gehosteten Zielen migrieren. Außerdem wird erläutert, wie Sie den Proxy bereitstellen, nachdem Sie die Migrationsschritte ausgeführt haben.

Bei den Migrationsschritten bleiben die Struktur, Richtlinien, Abläufe und andere Konfigurationselemente des API-Proxys erhalten. Sie können die Migration in vier Schritten ausführen, wie unten beschrieben, und dann den migrierten Proxy mit apigeetool bereitstellen.

Schritt 1: Struktur der Proxy-Datei anpassen

Damit Sie die Dateistruktur anpassen können, muss sich der API-Proxy auf Ihrem lokalen Dateisystem befinden. Wenn der Proxy auf Edge bereitgestellt wird, müssen Sie ihn herunterladen, bevor Sie fortfahren können. In der herkömmlichen Konfiguration folgt ein Edge-Proxy-"Bundle", das Node.js-Code enthält, dieser Dateistruktur. Der Node.js-Anwendungscode wird im Verzeichnis resources/node platziert:

apiproxy/
    policies/
    proxies/
    targets/
    resources/
      node/
        Your application code


Bei gehosteten Zielen müssen Sie das Stammverzeichnis der Node.js-Anwendung in einem Verzeichnis namens resources/hosted ablegen. Erstellen Sie einfach ein neues Verzeichnis mit dem Namen resources/hosted und verschieben Sie den Inhalt von resources/node dorthin. Anschließend können Sie das Verzeichnis resources/node löschen.

apiproxy/
     policies/
     proxies/
     targets/
     resources/
       hosted/
         Your application code

Schritt 2: Manifestdatei hinzufügen

Erstellen Sie eine Manifestdatei mit dem Namen app.yaml und speichern Sie sie im Verzeichnis apiproxy/resources/hosted.

Im Folgenden finden Sie ein Beispiel für eine app.yaml-Datei. Hier wird angegeben, dass die Laufzeit Node.js ist (erforderlich). Außerdem wird eine Umgebungsvariable in der Ausführungsumgebung erstellt, also eine Variable, auf die die Node.js-Anwendung zugreifen kann. Die Umgebungsvariable ist optional und wird hier nur als Beispiel gezeigt. Weitere Informationen und Beispiele finden Sie unter Manifestdatei.

runtime: node
  env:
    - name: NODE_ENV
      value: production


Das folgende Beispiel zeigt eine Node.js-Projektstruktur, die sich am richtigen Speicherort im Proxy für die Bereitstellung von gehosteten Zielen befindet:

apiproxy/
   resources/
      hosted/
        index.js
        node_modules/
        app.yaml
        package.json

Schritt 3: Prüfen, ob eine package.json-Datei vorhanden ist

In herkömmlichen Edge Node.js-Proxys war die package.json optional. Bei gehosteten Zielen müssen Sie jedoch eine im Verzeichnis apiproxy/resources/hosted angeben. Geben Sie in dieser Datei alle erforderlichen Abhängigkeiten für Ihre App an.

Schritt 4: Zielendpunkt des Proxys ändern

Für einen traditionellen Node.js-Proxy muss in der Zielendpunktdatei (in der Regel /apiproxy/targets/default.xml) ein Tag namens <ScriptTarget> vorhanden sein. Für gehostete Ziele müssen Sie ein leeres Tag namens <HostedTarget/> hinzufügen. Wenn sich in der Datei ein ScriptTarget-Tag befindet, können Sie es einfach entfernen. Beispiel:

    <?xml version="1.0" encoding="UTF-8"?>
    <TargetEndpoint name="default">
       <Description />
       <FaultRules />
       <PreFlow name="PreFlow">
          <Request />
          <Response />
       </PreFlow>
       <PostFlow name="PostFlow">
          <Request />
          <Response />
       </PostFlow>
       <Flows />
       <HostedTarget />
    </TargetEndpoint>
    

Proxy bereitstellen

Sie können den Proxy jetzt mit dem Befehl apigeetool deployproxy bereitstellen.

  1. Wechseln Sie mit cd zum Stammverzeichnis Ihres Proxys: /apiproxy.
  2. Verwenden Sie diesen Befehl, um den Proxy bereitzustellen:
  3. apigeetool deployproxy -u username -o org -e env -n proxy-name -d .

    Beispiel:

    apigeetool deployproxy -u jdoe -o docs -e test -n hello-world -d .

Weitere Informationen zur Verwendung von apigeetool finden Sie unter https://github.com/apigee/apigeetool-node/blob/master/README.md.

Proxy testen

Sie können den Proxy mit einem cURL-Befehl, mit einem REST-Client wie Postman oder in der Edge-Benutzeroberfläche im Trace-Tool testen. Hier ist ein Beispiel für einen cURL-Befehl:

curl http://myorg-test.apigee.net/hello-world
Hello,World!