Eigenständige Node.js-Anwendung bereitstellen

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

In diesem Thema wird erläutert, wie Sie eine Node.js-Anwendung von Ihrem lokalen System in Apigee Edge bereitstellen. In diesem Thema wird erläutert, 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 eines Befehlszeilenprogramms namens 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 Express zum Erstellen einer Webanwendung in Node.js verwendet. Die Anwendung wird als HTTP-Server ausgeführt, der auf HTTP-Anfragen wartet, diese verarbeitet, Daten zurückgibt usw. Wenn Sie mit apigeetool eine Node.js-Anwendung in Edge bereitstellen, ist diese in einen Proxy eingebunden und wird im Kontext der Edge-Plattform ausgeführt. Sie können Ihre Anwendung dann über die neue Proxy-URL aufrufen und einen Mehrwert bieten, indem Sie Standard-Edge-Features wie OAuth-Sicherheit, Kontingentrichtlinien, Richtlinien für den Bedrohungsschutz, bedingte Datenflüsse, Caching und viele andere „anpassen“.

Was macht Apigeetool?

Wenn Sie das Dienstprogramm apigeetool mit der Option deploynodeapp ausführen, geschieht Folgendes:

  • Erzeugt ein API-Proxy-Konfigurations-Bundle für die Node.js-Anwendung.
  • Verpackt die Node.js-Anwendung mit allen Node.js-Paketen, die mit NPM (Node Packaged Modules) installiert sind.
  • Importiert das API-Proxy-Konfigurations-Bundle mithilfe der Edge-Verwaltungs-API in die angegebene Organisation in Apigee Edge.
  • Stellt den API-Proxy in einer Umgebung bereit.
  • Führt die Node.js-Anwendung auf Apigee Edge aus und stellt sie über das Netzwerk zur Verfügung.

Verwendung von Apigeetool vorbereiten

Bevor Sie beginnen, müssen Sie das Dienstprogramm apigeetool installieren.

Sie können Apigeetool entweder über npm installieren oder den Code aus GitHub klonen und verknüpfen.

Installation von npm

Das Modul apigeetool und seine Abhängigkeiten wurden für Node.js entwickelt und sind über npm mit dem folgenden Befehl verfügbar:

$ sudo npm install -g apigeetool

In der Regel werden durch die Option „-g“ Module in /usr/local/lib/node_modules/apigeetool auf *nix-basierten Maschinen platziert.

Installation von GitHub

Laden Sie die API-Plattformtools entweder von GitHub herunter oder klonen Sie sie. Installationsanweisungen finden Sie in der INFO-Datei im Repository-Stammverzeichnis.

$ git clone https://github.com/apigee/apigeetool-node.git

Wenn Sie die Installation abgeschlossen haben, muss sich die ausführbare apigeetool-Datei im Pfad befinden. Sie können es testen, indem Sie Folgendes eingeben:

$ apigeetool -h

Node.js-Anwendung mit Apigeetool in Edge bereitstellen

Hinweis: Vor der Bereitstellung benötigen Sie den Organisationsnamen, den Nutzernamen und das Passwort von Apigee Edge für Ihr Apigee Edge-Konto. Sie benötigen diese Informationen, um den Befehl apigeetool korrekt zu erstellen.

So stellen Sie eine Node.js-Anwendung mit apigeetool bereit:

  1. Führen Sie in einem Terminalfenster cd das Stammverzeichnis Ihrer Node.js-Anwendung aus.
  2. Führen Sie das Dienstprogramm apigeetool mit dem Befehl deploynodeapp 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
    
  3. Überprüfen Sie die Ausgabe in Ihrem 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: Deploy“ angezeigt wird, war es schon alles. Es lief alles reibungslos. Ihre Node.js-Anwendung ist in einen API-Proxy eingebettet, der in Edge bereitgestellt wird. Er wird ausgeführt und wartet auf die Verarbeitung von Anfragen. Sie können sie jetzt testen.

  4. Testen Sie Ihren Proxy. Beispiel:

    $ curl http://myorg-test.apigee.net/myNodeApp
    Hello, My Node App!
    
  5. Wenn Sie möchten, melden Sie sich bei Ihrem Apigee Edge-Konto an und rufen Sie die Seite der API-Proxys der Verwaltungs-UI auf. Der neue Proxy wird dort aufgeführt.

So verarbeitet Apigeetool abhängige Dateien und Module

Wenn Ihre Node.js-Anwendung von installierten Modulen abhängt, verarbeitet apigeetool diese durch Komprimierung des Ordners node_modules und Hinzufügen zum Proxy-Bundle. Es sind keine weiteren Maßnahmen erforderlich. Dasselbe gilt für Verzeichnisse, die zusätzlichen Quellcode enthalten. Das Apigeetool-Dienstprogramm komprimiert sie und stellt sie mit dem Bundle bereit.

Sie können in diesen ZIP-Verzeichnissen keine Dateien im Editor der Edge-Management-Benutzeroberfläche bearbeiten. Wenn Sie sie ändern müssen, können Sie Ihr Projekt exportieren, die Dateien lokal bearbeiten und dann mit Apigeetool oder durch Importieren des exportierten Projekts über die Verwaltungs-UI noch einmal bereitstellen. Siehe auch Proxy mit Node.js-Code exportieren und importieren.

Grundlegende Nutzungsinformationen für Apigeetool

Geben Sie Folgendes ein, um grundlegende Informationen zur Verwendung der Eingabeparameter des apigeetool-Dienstprogramms zu erhalten:

$ 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 zum Einbinden einer vorhandenen Node.js-Anwendung in einen API-Proxy besteht darin, die Anwendung beim Erstellen des Proxys hinzuzufügen. Dies ist vollständig über die Verwaltungsoberfläche und das Dialogfeld „Neuer API-Proxy“ möglich.

  1. Klicken Sie auf der Übersichtsseite des API-Proxys auf +API-Proxy.
  2. Wählen Sie im Dialogfeld „Neuer API-Proxy“ die Option Vorhandenes Node.js aus.
  3. Verwenden Sie die Schaltfläche Dateien auswählen, um eine oder mehrere Node.js-Dateien für den Import auszuwählen.
  4. Geben Sie dem Proxy einen Namen. In diesem Beispiel nennen wir sie hellonode.
  5. Fügen Sie dem Basispfad des Projekts die Version /v1 hinzu. Eine Best Practice ist die Versionsverwaltung der API.
  6. Klicken Sie auf Build.
  7. Klicken Sie auf Develop, um die Ansicht "Develop" aufzurufen.
  8. Öffnen Sie die Datei TargetEndpoint im Code-Editor.
  9. Achten Sie darauf, dass das Element <ScriptTarget> die Node.js-Hauptdatei so angibt:


    <ScriptTarget>
            <ResourceURL>node://server.js</ResourceURL>
            <Properties/>
    </ScriptTarget>
    
  10. Klicken Sie auf Speichern.

Neue Node.js-Ressourcendateien hinzufügen und aufrufen

Eine andere Möglichkeit, um Node.js-Code zu einem Proxy hinzuzufügen, besteht darin, ihn direkt über die UI oder durch Hochladen aus Ihrem lokalen Dateisystem hinzuzufügen. Sie können auch angeben, welche Node.js-Datei die Hauptdatei ist. Dies ist die Datei, die Edge aufruft, wenn der Proxy bereitgestellt wird.

Neue Node.js-Dateien über die UI hinzufügen

Über die Verwaltungs-UI 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:

  1. Wählen Sie in der Entwicklungsansicht im Menü "Neu" die Option Neues Skript aus.
  2. Wählen Sie im Dialogfeld „Add Script“ (Skript hinzufügen) den Dateityp Knoten aus und geben Sie dem Script einen Namen.
  3. 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 Abschnitt Scripts 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 Ihrem Dateisystem importieren

So import Sie eine Node.js-Datei aus Ihrem Dateisystem in den Proxy:

  1. Wählen Sie in der Entwicklungsansicht im Menü "Neu" die Option Neues Skript aus.
  2. Klicken Sie im Dialogfeld "Skript hinzufügen" auf Skript importieren.
  3. Wählen Sie mit dem Dateitool Ihre Node.js-Datei aus.
  4. Der Name der Datei wird dem Dialogfeld hinzugefügt, Sie können ihn aber bei Bedarf ändern.
  5. Klicken Sie auf Hinzufügen. Die Datei wird im Bereich „Skripts“ des Navigators angezeigt und im Editor geöffnet.
  6. 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 nicht einfach eine neu importierte oder erstellte Node.js-Datei aufrufen. Dies liegt daran, dass Edge erfordert, dass eine Node.js-Datei die main-Datei ist. Die Hauptdatei wird im <ScriptTarget>-Element der Definition des Zielendpunkts angegeben. So legen Sie fest, welche Datei die Node.js-Hauptdatei ist:

  1. Klicken Sie im Navigator unter "Zielendpunkte" auf den Namen des Zielendpunkts (normalerweise default genannt).
  2. Bearbeiten Sie im Code-Editor das <ScriptTarget>-Element, indem Sie <ResourceURL> in den Namen der Datei ändern, die die Node.js-Hauptdatei sein soll. Wenn beispielsweise eine Datei namens hello-world.js die Hauptdatei sein soll, geben Sie node://hello-world.js im Element ResourceURL ein.
  3. Klicken Sie auf Speichern.

An dieser Stelle können Sie die Datei mit dem zuvor verwendeten Proxy-Pfad aufrufen. Beispielsweise haben wir uns das „Hello World!“-Beispiel angesehen, in dem der Basispfad v1/hello angegeben ist. Sie können den Basispfad jedoch ändern, indem Sie den Proxy-Endpunkt bearbeiten.

  1. Klicken Sie im Navigator unter "Proxyendpunkte" auf den Namen des Proxyendpunkts (normalerweise als default bezeichnet).
  2. Bearbeiten Sie im Code-Editor das <HttpProxyConnection>-Element, indem Sie <BasePath> in einen beliebigen Namen ändern. Wenn der aktuelle <BasePath> beispielsweise v1/hello ist und v1/my-node-file sein soll, ändern Sie das <BasePath>-Element so:

    <BasePath>/v1/my-node-file</BasePath>
  3. Klicken Sie auf Speichern.
  4. 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 den Proxy jederzeit wieder in Ihr System exportieren, dort bearbeiten und dann über die Verwaltungs-UI noch einmal in Edge importieren. Diese Art der Umlaufentwicklungstechnik wird häufig verwendet.

  1. Klicken Sie auf der Übersichtsseite des API-Proxys auf Entwickeln.
  2. Wählen Sie auf der Seite „Entwickeln“ die Option Aktuelle Überarbeitung herunterladen aus.
  3. 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 In neue Überarbeitung importieren auswählen.

Sie können die API auch zum Bereitstellen von Proxys verwenden. Weitere Informationen finden Sie unter Proxys über die Befehlszeile bereitstellen.

Nächste Schritte

Im nächsten Thema, Node.js zu einem vorhandenen API-Proxy hinzufügen wird erläutert, wie Sie eine Node.js-Anwendung zu einem vorhandenen Proxy in Ihrem Dateisystem hinzufügen und in Edge bereitstellen.