Sie sehen sich die Dokumentation zu Apigee Edge an.
Sehen Sie sich die Apigee X-Dokumentation an. info
In diesem Thema wird erläutert, wie Sie eine Node.js-Anwendung von Ihrem lokalen System in Apigee Edge bereitstellen.
In diesem Thema erfahren Sie, wie Sie mit dem Befehlszeilentool apigeetool
Node.js-Anwendungen in Apigee Edge bereitstellen.
Node.js-Code in Apigee Edge bereitstellen
Sie können eine vorhandene Node.js API-Anwendung, einschließlich aller abhängigen Node.js-Module, mithilfe des Befehlszeilen-Dienstprogramms apigeetool
von Ihrem lokalen System in Apigee Edge bereitstellen. Das Dienstprogramm bündelt die Anwendung und ihre Abhängigkeiten automatisch in einem API-Proxy und stellt sie in Edge bereit.
Angenommen, Sie haben mit Express eine Webanwendung in Node.js erstellt. Die Anwendung wird als HTTP-Server ausgeführt, der auf HTTP-Anfragen wartet, diese verarbeitet, Daten zurückgibt usw. Wenn Sie apigeetool
verwenden, um eine Node.js-Anwendung in Edge bereitzustellen, wird sie in einen Proxy verpackt und im Kontext der Edge-Plattform ausgeführt. Sie können Ihre Anwendung dann über die neue Proxy-URL aufrufen und mit Standard-Edge-Funktionen wie OAuth-Sicherheit, Kontingentrichtlinien, Richtlinien zum Schutz vor Bedrohungen, bedingten Abläufen, Caching und vielen anderen Funktionen ausstatten.
Was macht Apigeetool?
Wenn Sie das apigeetool
-Dienstprogramm mit der Option deploynodeapp
ausführen, geschieht Folgendes:
- Er generiert ein API-Proxy-Konfigurationsset für die Node.js-Anwendung.
- Die Node.js-Anwendung wird mit allen Node.js-Paketen verpackt, die mit NPM (Node Packaged Modules) installiert wurden.
- Importiert das API-Proxy-Konfigurationsset mithilfe der Edge Management API in die angegebene Organisation in Apigee Edge.
- Der API-Proxy wird in einer Umgebung bereitgestellt.
- Führt die Node.js-Anwendung auf Apigee Edge aus und stellt sie über das Netzwerk bereit.
Verwendung von Apigeetool vorbereiten
Bevor Sie beginnen, müssen Sie das apigeetool
-Dienstprogramm installieren.
Sie können apigeetool entweder über npm oder durch Klonen und Verknüpfen des Codes von GitHub installieren.
Installation über npm
Das apigeetool
-Modul und seine Abhängigkeiten sind für Node.js konzipiert und über npm mit dem folgenden Befehl verfügbar:
$ sudo npm install -g apigeetool
In der Regel werden Module durch die Option „-g“ in /usr/local/lib/node_modules/apigeetool
auf *nix-basierten Maschinen platziert.
Installation von GitHub
Laden Sie entweder die API-Plattformtools von GitHub herunter oder klonen Sie sie. Eine Installationsanleitung finden Sie in der README-Datei im Stammverzeichnis des Repositories.
$ git clone https://github.com/apigee/apigeetool-node.git
Achten Sie nach Abschluss der Installation darauf, dass sich die ausführbare Datei von apigeetool
in Ihrem Pfad befindet. Sie können es testen, indem Sie Folgendes eingeben:
$ apigeetool -h
Node.js-Anwendung mit apigeetool in Edge bereitstellen
Hinweis:Bevor Sie die Bereitstellung starten, müssen Sie den Namen Ihrer Apigee Edge-Organisation, den Nutzernamen und das Passwort für Ihr Apigee Edge-Konto kennen. Sie benötigen diese Informationen, um den Befehl apigeetool
korrekt zu erstellen.
So stellen Sie eine Node.js-Anwendung mit apigeetool
bereit:
- Rufen Sie in einem Terminalfenster das Stammverzeichnis Ihrer Node.js-Anwendung auf und
cd
. - Führen Sie das
apigeetool
-Dienstprogramm mit dem Befehldeploynodeapp
aus:
$ apigeetool deploynodeapp -n {A name for your new proxy} -d {The root directory of your Node.js app} -m {The name of the main Node.js file} -o {Your org name on Edge} -e {The environment to deploy to} -b {The base URL for your proxy} -u {Your Edge email address} -p {Your Edge password}
Beispiel:
$ apigeetool deploynodeapp -n myNodeApp -d . -m server.js -o myorg -e test -b /myNodeApp -u ntesla -p myPassword
- Prüfen Sie die Ausgabe im Terminalfenster. Sie sieht in etwa so aus:
Importing new application myNodeApp Imported new app revision 1 Deploying revision 1 Deployed. Proxy: "myNodeApp" Revision 1 Environment: test BasePath: /myNodeApp Status: deployed
Wenn „Status: bereitgestellt“ angezeigt wird, ist alles in Ordnung. Alles hat reibungslos funktioniert. Ihre Node.js-Anwendung ist in einem API-Proxy verpackt, in Edge bereitgestellt, wird ausgeführt und wartet auf die Verarbeitung von Anfragen. Sie kann jetzt getestet werden.
- Testen Sie Ihren Proxy. Beispiel:
$ curl http://myorg-test.apigee.net/myNodeApp Hello, My Node App!
- Sie können sich auch in Ihrem Apigee Edge-Konto anmelden und die Seite „API-Proxys“ der Verwaltungs-UI aufrufen. Dort wird der neue Proxy angezeigt.
So verarbeitet Apigeetool abhängige Dateien und Module
Wenn Ihre Node.js-Anwendung von installierten Modulen abhängt, werden diese von apigeetool verarbeitet, indem der Ordner node_modules
komprimiert und dem Proxy-Bundle hinzugefügt wird. Sie müssen nichts weiter unternehmen. Gleiches gilt für alle Verzeichnisse, die zusätzlichen Quellcode enthalten. Das Apigeetool-Dienstprogramm komprimiert sie und stellt sie mit dem Bundle bereit.
Sie können Dateien in diesen komprimierten Verzeichnissen nicht im Editor der Edge-Benutzeroberfläche bearbeiten. Wenn Sie sie ändern müssen, können Sie Ihr Projekt exportieren, die Dateien lokal bearbeiten und dann mit apigeetool oder über die Verwaltungsoberfläche neu bereitstellen. Weitere Informationen finden Sie unter Proxy mit Node.js-Code exportieren und importieren.
Grundlegende Informationen zur Verwendung von Apigeetool
Geben Sie Folgendes ein, um grundlegende Informationen zur Verwendung der Eingabeparameter des apigeetool
-Dienstprogramms aufzurufen:
$ apigeetool deploynodeapp -h Usage: deploynodeapp -n [name] -o [organization] -e [environment] -d [directory name] -m [main script file] -u [username] -p [password] -b [base path] -l [apigee API url] -z [zip file] -i -h -o Apigee organization name -e Apigee environment name -n Apigee proxy name -d Apigee proxy directory -m Main script name: Should be at the top level of the directory -u Apigee user name -p Apigee password -b Base path (optional, defaults to /) -L Apigee API URL (optional, defaults to https://api.enterprise.apigee.com) -z ZIP file to save (optional for debugging) -i import only, do not deploy -R Resolve Node.js modules on Apigee Edge. Equivalent to running npm install on your project. -U Uploads Node.js modules to Apigee Edge. -h Print this message
Neuen Proxy mit vorhandenen Node.js-Dateien erstellen
Eine andere Möglichkeit, eine vorhandene Node.js-Anwendung in einen API-Proxy einzubinden, besteht darin, die Anwendung beim Erstellen des Proxys hinzuzufügen. Das geht ganz einfach über die Verwaltungsoberfläche und das Dialogfeld „Neuer API-Proxy“.
- Klicken Sie auf der Übersichtsseite des API-Proxys auf +API-Proxy.
- Wählen Sie im Dialogfeld „Neuer API-Proxy“ Vorhandenes Node.js aus.
- Klicken Sie auf die Schaltfläche Dateien auswählen, um eine oder mehrere Node.js-Dateien für den Import auszuwählen.
- Geben Sie dem Proxy einen Namen. In diesem Beispiel nennen wir sie
hellonode
. - Fügen Sie dem Basispfad des Projekts die Version
/v1
hinzu. Als Best Practice wird die Versionsverwaltung für Ihre API empfohlen. - Klicken Sie auf Build.
- Klicken Sie auf Entwickeln, um die Entwicklungsansicht aufzurufen.
- Öffnen Sie die Datei
TargetEndpoint
im Code-Editor. - Achten Sie darauf, dass im
<ScriptTarget>
-Element die Haupt-Node.js-Datei angegeben ist:
<ScriptTarget> <ResourceURL>node://server.js</ResourceURL> <Properties/> </ScriptTarget>
- Klicken Sie auf Speichern.
Neue Node.js-Ressourcendateien hinzufügen und aufrufen
Sie können Node.js-Code auch direkt einem Proxy hinzufügen, entweder über die Benutzeroberfläche oder durch Hochladen aus Ihrem lokalen Dateisystem. Sie können auch angeben, welche Node.js-Datei die Hauptdatei ist. Das ist die Datei, die von Edge aufgerufen wird, wenn der Proxy bereitgestellt wird.
Neue Node.js-Dateien über die Benutzeroberfläche hinzufügen
Über die Verwaltungsoberfläche können Sie einem Proxy auf der Edge-Plattform zusätzliche Node.js-Quelldateien hinzufügen. Sie können sie direkt in der Benutzeroberfläche erstellen oder aus Ihrem Dateisystem importieren. Sehen wir uns zuerst an, wie das über die Benutzeroberfläche geht.
So erstellen Sie eine neue Node.js-Ressourcendatei:
- Wählen Sie in der Entwicklungsansicht im Menü „Neu“ die Option Neues Script aus.
- Wählen Sie im Dialogfeld „Script hinzufügen“ den Dateityp Node aus und geben Sie einen Namen für das Script ein.
- Klicken Sie auf Hinzufügen.
Die neue leere Node.js-Datei wird im Editor geöffnet. Sie können den Code ausschneiden und in die Datei einfügen. Die Datei wird auch im Skriptbereich des Navigators angezeigt.
[[{"type":"media","view_mode":"media_large","fid":"2431","attributes":{"alt":"","class":"media-image","height":"312","typeof":"foaf:Image","width":"417"}}]]
Node.js-Dateien aus dem Dateisystem importieren
So import Sie eine Node.js-Datei aus Ihrem Dateisystem in den Proxy:
- Wählen Sie in der Entwicklungsansicht im Menü „Neu“ die Option Neues Script aus.
- Klicken Sie im Dialogfeld „Script hinzufügen“ auf Script importieren.
- Wählen Sie mit dem Dateitool Ihre Node.js-Datei aus.
- Der Name der Datei wird in das Dialogfeld eingefügt. Sie können ihn bei Bedarf ändern.
- Klicken Sie auf Hinzufügen. Die Datei wird im Bereich „Scripts“ des Navigators angezeigt und im Editor geöffnet.
- Klicken Sie auf Speichern.
Wenn Sie die importierte Datei aufrufen möchten, ist ein zusätzlicher Schritt erforderlich, wie im nächsten Abschnitt erläutert.
Importierte Node.js-Datei aufrufen
Sie können eine neu importierte oder erstellte Node.js-Datei nicht einfach aufrufen. Der Grund dafür ist, dass in Edge eine Node.js-Datei als Hauptdatei festgelegt werden muss. Die Hauptdatei wird im <ScriptTarget>-Element der Zielendpunktdefinition angegeben. So geben Sie an, welche Datei die Haupt-Node.js-Datei ist:
- Klicken Sie im Navigationsbereich unter „Zielendpunkte“ auf den Namen des Zielendpunkts (normalerweise standard).
- Bearbeiten Sie im Code-Editor das Element <ScriptTarget>. Ändern Sie dazu die <ResourceURL> in den Namen der Datei, die die Haupt-Node.js-Datei sein soll. Wenn beispielsweise eine Datei mit dem Namen
hello-world.js
die Hauptdatei sein soll, geben Sienode://hello-world.js
in das ResourceURL-Element ein. - Klicken Sie auf Speichern.
Sie können die Datei jetzt mit dem Proxypfad aufrufen, den Sie zuvor verwendet haben. Wir haben uns beispielsweise das Beispiel „Hallo Welt!“ angesehen, in dem der Basispfad v1/hello
angegeben ist. Sie können den Basispfad jedoch ändern, indem Sie den Proxy-Endpunkt bearbeiten.
- Klicken Sie im Navigator unter Proxy-Endpunkte auf den Namen des Proxy-Endpunkts (normalerweise default).
- Bearbeiten Sie im Code-Editor das Element <HttpProxyConnection>, indem Sie den Namen des Elements <BasePath> in einen beliebigen Namen ändern. Wenn das aktuelle <BasePath>-Element beispielsweise
v1/hello
ist und Sie es inv1/my-node-file
ändern möchten, ändern Sie das <BasePath>-Element so:
<BasePath>/v1/my-node-file</BasePath>
- Klicken Sie auf Speichern.
- Rufen Sie den Proxy mit dem neuen Basispfad auf:
$ curl http://myorg-test.apigee.net/v1/my-node-file Hello, World!
Proxy mit Node.js-Code exportieren und importieren
Nachdem Sie einen Proxy mit Node.js-Code in Edge bereitgestellt haben, können Sie ihn jederzeit wieder in Ihr System exportieren, dort bearbeiten und dann über die Verwaltungs-UI wieder in Edge importieren. Diese Art der Umlauf-Entwicklungstechnik wird häufig verwendet.
- Klicken Sie auf der Übersichtsseite des API-Proxys auf Entwickeln.
- Wählen Sie auf der Seite „Entwickeln“ die Option Aktuelle Version herunterladen aus.
- Entpacken Sie die heruntergeladene Datei auf Ihrem System.
Sie können das Proxy-Bundle wieder in Edge importieren, indem Sie im selben Menü die Option Import In to New Revision (In neue Überarbeitung importieren) auswählen.
Sie können die API auch zum Bereitstellen von Proxys verwenden. Weitere Informationen finden Sie im Hilfeartikel Proxys über die Befehlszeile bereitstellen.
Nächste Schritte
Im nächsten Thema Node.js einem vorhandenen API-Proxy hinzufügen wird erläutert, wie Sie einer vorhandenen Proxy-Anwendung in Ihrem Dateisystem eine Node.js-Anwendung hinzufügen und sie in Edge bereitstellen.