Anleitungen zu gehosteten Zielen

Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zuApigee X wechseln.
info

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

In den Anleitungen werden die folgenden Aufgaben behandelt:

  • Node.js-Anwendung mit der Edge-UI in gehosteten Zielen bereitstellen
  • Node.js-Anwendung von Ihrer lokalen Entwicklungsmaschine in gehosteten Zielen bereitstellen
  • Vorhandenen Proxy mit einer herkömmlichen Edge-Node.js-Zielimplementierung zu gehosteten Zielen migrieren

Node.js-Anwendung mit der Edge-UI in gehosteten Zielen bereitstellen

In dieser Anleitung stellen Sie eine einfache Node.js-Anwendung mit der Edge UI in gehosteten Zielen bereit. Nach Abschluss der Anleitung kennen Sie die grundlegende Struktur und den Inhalt eines Proxys für gehostete Ziele und wissen, wie Sie auf Bereitstellungs- und Build-Logdateien 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 Beispiel „Hello World“ ausgewählt ist.
  7. Klicken Sie auf Weiter.
  8. Wählen Sie auf der Seite „Sicherheit“ für die Autorisierung die Option Passthrough (keine) aus.
  9. Klicken Sie auf Weiter.
  10. Klicken Sie auf Weiter.
  11. Achten Sie darauf, dass auf der Seite „Build“ die Umgebung test ausgewählt ist. Beachten Sie, dass der Proxy-Typ Gehostete Ziele ist.
  12. Klicken Sie auf Erstellen und bereitstellen. Es kann einige Augenblicke dauern, bis die Proxy-Bereitstellung abgeschlossen ist.
  13. Nachdem der Proxy erfolgreich bereitgestellt wurde, klicken Sie unten auf der Seite auf Proxy „hello-hosted-targets“ ansehen.
  14. Den API-Proxy aufrufen. Am einfachsten geht das über den Tab Trace . Starten Sie eine Trace -Sitzung und klicken Sie auf Senden. Sie sollten den Status „200“ mit der folgenden Antwort erhalten:
    {"date":"2018-09-26T14:23:04.550Z","msg":"Hello, World!"}

Proxy prüfen

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

  4. Beachten Sie im Navigator den Inhalt im Abschnitt Skripts. Die Node.js-Anwendungsdateien sind unter dem hosted Label aufgeführt.

  5. Prüfen Sie in der Edge-UI die Dateien, die unter hosted im Abschnitt Skripts aufgeführt sind:
    • Die Datei „app.yaml“ enthält Konfigurationsinformationen. Sie können beispielsweise 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 Anwendung Modul Abhängigkeiten hat, müssen diese in package.json aufgeführt sein.

Logdateien ansehen

Anwendungsprotokolldateien können hilfreich sein, um Probleme zu beheben, die während der Build-Phase und zur Laufzeit auftreten.

  1. Klicken Sie in der Edge-UI auf den Tab Entwickeln.
  2. Klicken Sie auf Build-Logs, um das Build-Log aufzurufen.
  3. Klicken Sie auf Laufzeitlogs, um das Bereitstellungslog aufzurufen.

    Siehe auch Auf Logdateien zugreifen.

Zusammenfassung

  • Sie haben eine einfache Node.js-Anwendung in der Umgebung für gehostete Ziele bereitgestellt und sie in der Edge-UI getestet.
  • Sie haben erfahren, dass ein Proxy für gehostete Ziele ein spezielles leeres Tag im Ziel Endpunkt erfordert, das <HostedTarget/> heißt.
  • Sie haben erfahren, dass Edge Modulabhängigkeiten automatisch lädt und dass Abhängigkeiten in der package.json Datei aufgeführt sein müssen.
  • Außerdem haben Sie gelernt, wie Sie Build- und Laufzeitprotokolldateien prüfen.

Node.js von Ihrem System in Edge bereitstellen

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

apigeetool installieren

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

npm install -g apigeetool

Node.js-Anwendung erstellen

Um die Dinge zu vereinfachen, wird der Code für eine einfache Node.js-Anwendung bereitgestellt.

  1. Erstellen Sie ein Verzeichnis für die Node.js-Anwendung. Nennen Sie das Verzeichnis node-hosted-express.
  2. cd in das neue Verzeichnis.
  3. Erstellen Sie eine Datei namens index.js und kopieren Sie diesen Code hinein.
  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 namens app.yaml und kopieren Sie diesen Code hinein:
  8. runtime: node
    runtimeVersion: 8
    application: my-express-app
    env:
      - name: NODE_ENV
        value: production
      - name: LOG_LEVEL
        value: 3
  9. Achten Sie darauf, dass Ihr Verzeichnis so aussieht:
    ls
    app.yaml index.js package.json
    

Übersicht über die erforderliche Verzeichnisstruktur für den Anwendungscode

Ihre Node.js-Anwendung muss dieselbe Struktur wie eine Standard-Node.js-Anwendung haben. Achten Sie jedoch darauf, dass Sie diese Anforderungen erfüllt haben, bevor Sie mit apigeetool in Edge bereitstellen:

  • Die Manifestdatei app.yaml ist erforderlich und muss sich im Stammverzeichnis Ihrer Anwendung befinden. Weitere Informationen zu dieser Datei finden Sie unter Manifestdatei.
  • Eine package.json -Datei ist erforderlich. Darin müssen alle Abhängigkeiten aufgeführt sein, die Ihre Anwendung benötigt.
  • Ein Ordner node_modules ist nicht erforderlich. Edge führt npm install für Sie aus, wenn die Node.js-Anwendung 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. cd in einem Terminal zum Stammverzeichnis Ihrer Node.js-Anwendung.
  2. Führen Sie apigeetool mit dem Befehl deployhostedtarget 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 geben möchten. Er muss innerhalb der Organisation eindeutig sein. Die Zeichen, die Sie im Namen verwenden dürfen, sind auf folgende Zeichen beschränkt: 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-UI 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 enthalten Ausgaben zur Bereitstellung und zum Erstellen der Node.js-Anwendung. Siehe auch Logdateien.

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

Laufzeitlogs enthalten Ausgaben zur ausgeführten Anwendung. Laufzeitlogs sind auf die Umgebung beschränkt und geben Logs für die aktuell bereitgestellte Proxy-Version zurück. Siehe auch Logdateien.

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-UI ansehen

Nach der erfolgreichen Bereitstellung können Sie Ihren Proxy im Bereich „API-Proxys“ der Edge-UI ansehen und bearbeiten.

Vorhandenen Node.js-Proxy zu einem Proxy für gehostete Ziele migrieren

In diesem Abschnitt wird beschrieben, wie Sie einen vorhandenen Edge-API-Proxy, der die herkömmliche 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 API-Proxy-Struktur, Richtlinien, Flows und andere Konfigurationselemente erhalten. Sie können die Migration in vier Schritten durchführen, wie unten beschrieben, und dann den migrierten Proxy mit apigeetool bereitstellen.

Schritt 1: Proxy-Dateistruktur anpassen

Um die Dateistruktur anzupassen, muss sich der API-Proxy auf Ihrem lokalen Dateisystem befinden. Wenn der Proxy in Edge bereitgestellt wird, müssen Sie ihn herunterladen bevor Sie fortfahren. 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


Für gehostete Ziele müssen Sie das Stammverzeichnis Ihrer Node.js-Anwendung unter einem Verzeichnis namens resources/hosted platzieren. Erstellen Sie einfach ein neues Verzeichnis namens resources/hosted und verschieben Sie den Inhalt von resources/node hinein. 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 namens app.yaml und platzieren Sie sie im apiproxy/resources/hosted Verzeichnis.

Hier ist ein Beispiel für eine app.yaml-Datei. Sie gibt an, dass die Laufzeit Node.js ist (erforderlich). Außerdem wird eine Umgebungsvariable in der Ausführungsumgebung erstellt (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 an der richtigen Stelle im Proxy für die Bereitstellung gehosteter Ziele befindet:

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

Schritt 3: Achten Sie darauf, dass Sie eine package.json-Datei haben

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

Schritt 4: Zielendpunkt des Proxys ändern

Für einen herkömmlichen 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 in der Datei ein ScriptTarget Tag vorhanden ist, 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. cd in das 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-UI im Trace-Tool testen. Hier ist ein Beispiel für einen cURL-Befehl:

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