Anleitungen zu gehosteten Zielen

Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation
weitere Informationen

In den folgenden Anleitungen wird erläutert, wie Node.js-Anwendungen mithilfe von gehosteten Zielen, einer nativen Node.js-Laufzeitumgebung, die von Apigee gehostet wird, in Edge bereitgestellt werden.

In den Anleitungen werden die folgenden Aufgaben ausgeführt:

  • Node.js-Anwendung mithilfe der Edge-Benutzeroberfläche für gehostete Ziele bereitstellen
  • Node.js-Anwendung von Ihrem 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 für gehostete Ziele bereitstellen

In dieser Anleitung stellen Sie mithilfe der Edge-Benutzeroberfläche eine einfache Node.js-Anwendung für gehostete Ziele bereit. Nach Abschluss der Anleitung kennen Sie die grundlegende Struktur und den Inhalt eines gehosteten Ziel-Proxys sowie den Zugriff auf Bereitstellungs- und Erstellungsprotokolldateien.

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“ Sample 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) (Pass durch (keine)) aus.
  9. Klicken Sie auf Weiter.
  10. Klicken Sie auf Weiter.
  11. Achten Sie darauf, dass auf der Build-Seite die Testumgebung ausgewählt ist. Beachten Sie, dass der Proxytyp Hosted Targets (Gehostete Ziele) ist.
  12. Klicken Sie auf Build and Deploy (Erstellen und bereitstellen). Es kann einen Moment dauern, bis die Proxybereitstellung abgeschlossen ist.
  13. Nachdem der Proxy erfolgreich bereitgestellt wurde, klicken Sie unten auf der Seite auf Hello-hosted-targets-Proxy ansehen.
  14. Den API-Proxy aufrufen. Am einfachsten geht dies, indem Sie zum Tab Trace wechseln, eine Trace-Sitzung starten und auf Senden klicken. 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-Benutzeroberfläche auf den Tab Develop.
  2. Wählen Sie im Navigator unter „Zielendpunkte“ die Option Standard aus.
  3. Beachten Sie im Codeeditor, dass sich unter dem <TargetEndpoint>-Element ein leeres untergeordnetes <HostedTarget/>-Element befindet. Dieses leere Tag ist erforderlich. Damit wird Edge mitgeteilt, dass das Ziel des Proxys eine Anwendung ist, die in der Umgebung von gehosteten Zielen bereitgestellt wird.

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

  5. Sehen Sie sich in der Edge-Benutzeroberfläche die Dateien an, die in Scripts unter hosted 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. In diesem Beispiel müssen Sie die Datei nicht ändern.
    • Die Datei index.js ist die Hauptdatei der Node.js-Anwendung.
    • Wenn Ihre Anwendung Modulabhängigkeiten enthält, müssen diese in package.json aufgelistet werden.

Protokolldateien ansehen

Anwendungslogdateien können beim Beheben von Problemen nützlich 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 Develop.
  2. Klicken Sie auf Build-Logs, um das Build-Log aufzurufen.
  3. Klicken Sie auf Laufzeitlogs, um das Bereitstellungsprotokoll aufzurufen.

    Weitere Informationen finden Sie unter Auf Logdateien zugreifen.

Zusammenfassung

  • Sie haben eine einfache Node.js-Anwendung in der Umgebung für gehostete Ziele bereitgestellt und in der Edge-Benutzeroberfläche getestet.
  • Sie haben gelernt, dass ein gehosteter Ziel-Proxy ein spezielles leeres Tag im Zielendpunkt mit dem Namen <HostedTarget/> erfordert.
  • Sie haben gelernt, dass Edge Modulabhängigkeiten automatisch für Sie lädt und dass die Abhängigkeiten in der Datei package.json aufgelistet sein müssen.
  • Sie haben auch gelernt, Build- und Laufzeit-Logdateien zu prüfen.

Node.js vom System in Edge bereitstellen

In diesem Abschnitt wird erläutert, wie Sie eine eigenständige Node.js-Anwendung von Ihrem lokalen System mithilfe von apigeetool auf gehosteten Zielen bereitstellen. Das Dienstprogramm apigeetool bündelt die Node.js-Anwendung in einem neuen gehosteten Ziel-Proxy und stellt sie in Edge bereit.

Apigeetool installieren

Entwicklern wird die Verwendung von apigeetool empfohlen, 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. Rufen Sie das Verzeichnis node-hosted-express auf.
  2. cd in das neue Verzeichnis.
  3. Erstellen Sie eine Datei mit dem Namen index.js und kopieren Sie den Code in diese Datei.
  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 in diese Datei. Das Express-Modul wird als Abhängigkeit aufgeführt.
  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 in diese Datei:
  8. runtime: node
    runtimeVersion: 8
    application: my-express-app
    env:
      - name: NODE_ENV
        value: production
      - name: LOG_LEVEL
        value: 3
    
  9. Ihr Verzeichnis sollte so aussehen:
    ls
    app.yaml index.js package.json
    

Erforderliche Verzeichnisstruktur für den App-Code prüfen

Ihre Node.js-Anwendung muss die gleiche Struktur wie eine Node.js-Standardanwendung haben. Achten Sie jedoch darauf, dass Sie die folgenden Anforderungen erfüllt haben, bevor Sie apigeetool in Edge bereitstellen:

  • Die Manifestdatei app.yaml ist erforderlich und muss im Stammverzeichnis Ihrer Anwendung vorhanden sein. Weitere Informationen zu dieser Datei finden Sie unter Manifestdatei.
  • Eine package.json-Datei ist erforderlich. Er muss alle Abhängigkeiten auflisten, die Ihre Anwendung benötigt.
  • Der 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. node_modules müssen Sie nur 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 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. Im Namen dürfen nur die folgenden Zeichen verwendet werden: 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 in Bezug auf die Bereitstellung und Erstellung der Node.js-Anwendung. Weitere Informationen finden Sie unter 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

Laufzeitprotokolle abrufen

Laufzeitlogs zeigen Ausgaben in Bezug auf die ausgeführte Anwendung an. Laufzeitlogs sind auf die Umgebung beschränkt und geben Logs 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 ansehen

Nach einer erfolgreichen Bereitstellung können Sie den Proxy im Bereich der API-Proxys der Edge-Benutzeroberfläche ansehen und bearbeiten.

Vorhandenen Node.js-Proxy zu einem gehosteten Ziel-Proxy migrieren

In diesem Abschnitt wird erläutert, 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 der Proxy nach der Durchführung der Migrationsschritte bereitgestellt wird.

Bei den Migrationsschritten werden die Struktur des API-Proxys, die Richtlinien, Abläufe und andere Konfigurationselemente beibehalten. Sie können die Migration wie unten beschrieben in vier Schritten ausführen 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 ist, müssen Sie ihn herunterladen, bevor Sie fortfahren. Bei der herkömmlichen Konfiguration folgt das Edge-Proxy-„Bundle“, das Node.js-Code enthält, dieser Dateistruktur. Der Node.js-Anwendungscode wird im Verzeichnis resources/node abgelegt:

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


Bei gehosteten Zielen müssen Sie das Stammverzeichnis Ihrer Node.js-Anwendung in einem Verzeichnis namens resources/hosted ablegen. Erstellen Sie einfach ein neues Verzeichnis namens 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: Manifest-Datei hinzufügen

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

Hier sehen Sie 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 Die 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: Prüfen, ob Sie eine package.json-Datei haben

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

Schritt 4: Zielendpunkt des Proxys ändern

Für einen herkömmlichen Node.js-Proxy muss ein Tag namens <ScriptTarget> in der Zielendpunktdatei vorhanden sein (in der Regel /apiproxy/targets/default.xml). Bei gehosteten Zielen müssen Sie ein leeres Tag mit dem Namen <HostedTarget/> hinzufügen. Wenn die Datei ein ScriptTarget-Tag enthält, 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 im 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 ein Beispiel für einen cURL-Befehl:

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