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
- Rufen Sie apigee.com/edge auf.
- Geben Sie Ihre Apigee-Anmeldedaten ein, um sich anzumelden.
Neuen Proxy erstellen
- Wählen Sie im seitlichen Navigationsmenü Entwickeln > API-Proxys aus.
- Klicken Sie auf + Proxy.
- Wählen Sie auf der Seite „Proxy erstellen“ die Option Gehostetes Ziel aus.
- Klicken Sie auf Weiter.
- Geben Sie im Feld Proxy-Name
hello-hosted-targets
ein. - Achten Sie darauf, dass „Hello World“ Sample ausgewählt ist.
- Klicken Sie auf Weiter.
- Wählen Sie auf der Seite „Sicherheit“ für die Autorisierung die Option Pass through (none) (Pass durch (keine)) aus.
- Klicken Sie auf Weiter.
- Klicken Sie auf Weiter.
- Achten Sie darauf, dass auf der Build-Seite die Testumgebung ausgewählt ist. Beachten Sie, dass der Proxytyp Hosted Targets (Gehostete Ziele) ist.
- Klicken Sie auf Build and Deploy (Erstellen und bereitstellen). Es kann einen Moment dauern, bis die Proxybereitstellung abgeschlossen ist.
- Nachdem der Proxy erfolgreich bereitgestellt wurde, klicken Sie unten auf der Seite auf Hello-hosted-targets-Proxy ansehen.
- 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
- Klicken Sie in der Edge-Benutzeroberfläche auf den Tab Develop.
- Wählen Sie im Navigator unter „Zielendpunkte“ die Option Standard aus.
- 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. - Beachten Sie im Navigator den Inhalt im Abschnitt Skripts. Die Node.js-Anwendungsdateien werden unter dem Label hosted aufgeführt.
- 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.
- Klicken Sie in der Edge-Benutzeroberfläche auf den Tab Develop.
- Klicken Sie auf Build-Logs, um das Build-Log aufzurufen.
- 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.
- Erstellen Sie ein Verzeichnis für die Node.js-Anwendung. Rufen Sie das Verzeichnis node-hosted-express auf.
- cd in das neue Verzeichnis.
- Erstellen Sie eine Datei mit dem Namen index.js und kopieren Sie den Code in diese Datei.
- Erstellen Sie eine Datei namens package.json und kopieren Sie diesen Code in diese Datei. Das Express-Modul wird als Abhängigkeit aufgeführt.
- Erstellen Sie eine Datei mit dem Namen app.yaml und kopieren Sie den folgenden Code in diese Datei:
- Ihr Verzeichnis sollte so aussehen:
ls app.yaml index.js package.json
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) })
{ "name": "hello-world", "version": "1.0.0", "main": "index.js", "scripts": { "start": "node index.js --use_strict" }, "author": "", "license": "", "dependencies": { "express": "^4.16.0" } }
runtime: node runtimeVersion: 8 application: my-express-app env: - name: NODE_ENV value: production - name: LOG_LEVEL value: 3
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
- Wechseln Sie in einem Terminal mit cd zum Stammverzeichnis Ihrer Node.js-Anwendung.
- Führen Sie apigeetool mit dem Befehl deployhostedtarget aus:
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.
- cd im Stammverzeichnis Ihres Proxys: /apiproxy
- Verwenden Sie diesen Befehl, um den Proxy bereitzustellen:
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!