Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation weitere Informationen
Bereitstellung eines gehosteten Ziel-Proxys aufheben
Wenn Sie die Bereitstellung eines Edge-Proxys aufheben, der eine gehostete Zielanwendung enthält, wird die Bereitstellung der zugehörigen gehosteten Zielanwendung aufgehoben, das zugrunde liegende Anwendungs-Image wird jedoch nicht gelöscht. Wenn Sie den Proxy noch einmal bereitstellen, wird auch die Anwendung für gehostete Ziele neu bereitgestellt.
Gehostete Ziel-Proxy löschen
Nachdem Sie einen gehosteten Ziel-Proxy gelöscht haben, wird die Ausführung der zugrunde liegenden Laufzeitinstanzen innerhalb eines bestimmten Zeitraums beendet. Der Anwendungscode bleibt jedoch bestehen.
Auf Protokolldateien zugreifen
Protokolldateien sind für das Debugging hilfreich. Sie können zwei Arten von Logdateien für die Bereitstellung von gehosteten Zielen ansehen:
- Build-Log: Zeigt die Ausgabe im Zusammenhang mit der Bereitstellung und Erstellung einer Anwendung für gehostete Ziele.
- Laufzeitlog – Zeigt die Ausgabe der ausgeführten Anwendung für gehostete Ziele an. Laufzeitlogs sind auf die Umgebung beschränkt und enthalten Loginformationen für die aktuell bereitgestellte Proxyversion.
Auf Logs über die Edge-Benutzeroberfläche zugreifen
- Rufen Sie apigee.com/edge auf.
- Geben Sie Ihre Anmeldedaten ein und klicken Sie auf Sign In (Anmelden).
- Wählen Sie im seitlichen Navigationsmenü Develop > API Proxies (Entwickeln > API-Proxies) aus.
- Wählen Sie den Proxy aus, für den Sie Logs ansehen möchten.
- Klicken Sie auf den Tab Develop.
- Klicken Sie auf Build-Logs, um das Build-Log aufzurufen.
- Klicken Sie auf Laufzeitlogs, um das Laufzeitprotokoll aufzurufen.
Auf Logs mit der API zugreifen
Sie können auch eine Edge-API verwenden, um Logs für gehostete Ziele abzurufen. Weitere Informationen finden Sie unter Im Cache gespeicherte Node.js-Logs abrufen.
Privates npm-Repository verwenden
In diesem Abschnitt wird erläutert, wie Sie einen Node.js-Proxy für gehostete Ziele bereitstellen, wenn Sie in Ihrer Entwicklungsumgebung ein privates NPM-Repository verwenden.
Wissenswertes über die Verwendung eines privaten Repositorys
Wenn Sie eine Node.js-Anwendung in Edge bereitstellen, werden alle Abhängigkeiten Ihres Projekts im Rahmen des Bereitstellungsprozesses automatisch importiert.
Im Wesentlichen führt Hosted Targets bei der Bereitstellung npm install
auf Ihrem Code aus.
Wenn Sie in Ihrer Entwicklungsumgebung jedoch ein privates NPM-Repository verwenden, können die privaten Abhängigkeiten nicht in der Cloud aufgelöst werden. In diesem Fall besteht die Lösung darin, die Option --bundled-dependencies
zu verwenden, wenn Sie das Bereitstellungsdienstprogramm apigeetool nutzen. Weitere Informationen finden Sie unter Node.js vom System in Edge bereitstellen.
Wenn Sie das Flag --bundled-dependencies
für apigeetool
verwenden, wird Ihre Node.js-Anwendung in gehostete Ziele hochgeladen. Alle lokalen/privaten Dateien, die im bundledAbhängigkeiten-Array in package.json
aufgeführt sind, werden komprimiert und mit dem Bundle hochgeladen.
Wenn Sie ein öffentliches NPM-Repository intern spiegeln, schlägt die Bereitstellung fehl, wenn das Deployment-Bundle eine .npmrc
- oder package-lock.json
-Datei enthält, die auf Ihren privaten Spiegel verweist. Dies ist jedoch nicht häufig eine Situation. Lassen Sie in diesem Fall .npmrc
oder package-lock.json
aus dem Proxy-Bundle weg, das Sie bereitstellen möchten.
Mit einem privaten NPM-Repository bereitstellen
So verwenden Sie Module, die aus einem privaten NPM-Repository bereitgestellt wurden:
- Bei npm anmelden:
npm login
- Rufen Sie ein npm-Authentifizierungstoken ab:
- Suchen Sie Ihre .npmrc-Datei (sollte im ~/.npmrc-Format sein).
- In Ihrer .npmrc-Datei finden Sie das Token am Ende der Zeile, die in etwa so aussieht:
//registry.npmjs.org/:_authToken=****
- Alternativ können Sie die
npm token <list | create | revoke>
-Befehle verwenden, um ein Authentifizierungstoken aufzulisten, zu erstellen oder zu widerrufen. Weitere Informationen finden Sie in der Dokumentation zu npm-Token. - Rufen Sie wie unten beschrieben die Konfigurationsseite für die Schlüssel/Wert-Zuordnungen auf.
Edge
So greifen Sie über die Edge-Benutzeroberfläche auf die Konfigurationsseite für Schlüssel/Wert-Zuordnungen zu:
- Melden Sie sich unter apigee.com/edge an.
- Wählen Sie in der linken Navigationsleiste Verwaltung > Umgebungen > Schlüssel/Wert-Zuordnungen aus.
Classic Edge (Private Cloud)
So greifen Sie über die Classic Edge-Benutzeroberfläche auf die Konfigurationsseite für Schlüssel/Wert-Zuordnungen zu:
- Melden Sie sich bei
http://ms-ip:9000
an, wobei ms-ip die IP-Adresse oder der DNS-Name des Knotens des Verwaltungsservers ist. - Wählen Sie in der oberen Navigationsleiste APIs > Umgebungskonfiguration > Schlüssel/Wert-Zuordnungen aus.
- Klicken Sie auf + Schlüssel/Wert-Zuordnung.
- Geben Sie im Dialogfeld „Neue Schlüssel/Wert-Zuordnung“ einen Namen ein und wählen Sie Verschlüsselt aus.
- Klicken Sie auf Hinzufügen.
- Fügen Sie das zuvor erstellte oder erstellte Authentifizierungstoken als neuen Eintrag in jeder gerade erstellten KVMs hinzu.
- Fügen Sie der Datei app.yaml einen Eintrag hinzu, der auf die KVM und den Schlüssel verweist, die dem npm-Authentifizierungstoken zugeordnet sind. Die Ausgabe sollte ungefähr so aussehen:
- Das übergeordnete Attribut name entspricht dem Namen der Umgebungsvariablen, die erstellt wird.
- Der name unter valueRef entspricht der KVM, die Sie zuvor erstellt haben.
- Das Attribut key entspricht dem Schlüssel, der dem npm-Token zugeordnet ist, das Sie der KVM hinzugefügt haben.
- Erstellen Sie eine .npmrc-Datei in dem Verzeichnis, in dem sich auch die Datei „package.json“ befindet. Die Datei sollte in etwa so aussehen:
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
. Wenn Sieregistry.npmjs.org
nicht verwenden, können Sie den Bereich in der npmrc-Datei festlegen. Fügen Sie dazu eine Zeile wie diese hinzu:@myscope:registry=https://mycustomregistry.example.org
. Weitere Informationen finden Sie in der npmrc-Dokumentation. - Laden Sie Ihren Node.js-Proxy mit den enthaltenen Dateien .npmrc und app.yaml hoch oder aktualisieren Sie sie.
- Achten Sie darauf, dass Ihr neuer oder aktualisierter Proxy das gewünschte private Repository-Modul bereitstellt und funktioniert.
- Wenn der Proxy nicht bereitgestellt wird, prüfen Sie die Build-Logs, um festzustellen, ob die Installation des privaten npm-Moduls fehlgeschlagen ist. Dann:
- Auf dem Tab „Develop“ (Entwickeln) muss .npmrc vorhanden sein.
- Prüfen Sie, ob Ihr Token gültig ist. Versuchen Sie, das Modul lokal mit dem Token in der kvm zu installieren.
- Wenn Sie einen benutzerdefinierten Bereich verwenden, muss dieser festgelegt sein.
env: - name: NPM_TOKEN valueRef: name: npm_store key: private_token
Wobei:
NPM-Version für gebündelte Abhängigkeiten angeben
Standardmäßig wird NPM v4 verwendet, um gebündelte Abhängigkeiten in der Umgebung für gehostete Ziele zu installieren.
Wenn Sie jedoch eine andere NPM-Version verwenden möchten, können Sie sie in der Umgebungsvariable NPM_VERSION
angeben. Sie können diese Variable in der Manifestdatei der App festlegen. Weitere Informationen finden Sie unter Elemente der Manifestdatei.
Wenn Sie gebündelte Abhängigkeiten verwenden und NPM_VERSION
nicht angeben, verwenden gehostete Ziele standardmäßig NPM v4. Wenn Sie keine gebündelten Abhängigkeiten verwenden, wird die Version von NPM verwendet, die in der angegebenen Node.js-Laufzeit enthalten ist.
Beispiel für gebündelte Abhängigkeiten
Ein Beispiel, das das Feature für gebündelte Abhängigkeiten mit gehosteten Zielen veranschaulicht, finden Sie unter Node.js-Anwendung mit gehosteten Funktionen mithilfe benutzerdefinierter Module erstellen.Endpunkt für Systemdiagnosen hinzufügen
Sie haben die Möglichkeit, einen Endpunkt für die Systemdiagnose für Ihre Node.js-Anwendung zu implementieren. Apigee verwendet diesen Endpunkt, wenn Ihre Node.js-Anwendung beginnt, um zu prüfen, ob die Anwendung im Container ausgeführt wird.
Standardmäßig wird /health
als Endpunkt erwartet. Sie können den Standardendpunkt ändern. Geben Sie dazu den Endpunkt in einer Umgebungsvariablen namens HOSTED_TARGET_HEALTH_CHECK_PATH
an. Sie können diese Variable in der Manifestdatei der Anwendung festlegen. Weitere Informationen finden Sie unter Elemente der Manifestdatei.
Die Implementierung eines Endpunkts für Systemdiagnosen ist nicht erforderlich. Wenn Sie jedoch einen Endpunkt für Systemdiagnosen implementieren, beachten Sie Folgendes:
- Wenn Ihre Anwendung beendet wird, wenn Apigee den Endpunkt erreicht, wird sie nicht wie erwartet gestartet.
- Es ist in Ordnung, wenn Ihr Endpunkt den HTTP-Status „404 Nicht gefunden“ zurückgibt. Mit
/health
oderHOSTED_TARGET_HEALTH_CHECK_PATH
wird lediglich geprüft, ob Ihre Anwendung ausgeführt wird. Die tatsächliche Antwort wird ignoriert.
Speicherort des NPM-Cache ändern
Neuere Versionen von Node.js verwenden eine NPM-Version, die /root/.npm
für den NPM-Cache verwendet.
Dieser Speicherort stellt ein Problem für gehostete Ziele dar, da dieser Verzeichnisspeicherort schreibgeschützt ist. Dies liegt daran, dass die Hosted Target-Laufzeit ein tmpfs-Dateisystem verwendet, in dem nur /tmp
beschreibbar ist.
Zur Umgehung dieses Problems können Sie die Umgebungsvariable npm_config_cache
in der Datei app.yaml
(Manifestdatei) Ihrer Anwendung auf ein Verzeichnis innerhalb von /tmp
festlegen. Beispiel:
runtime: node application: my-express-app env: - name: npm_config_cache value: /tmp/.npm - name: NODE_ENV value: production - name: LOG_LEVEL value: 3
Anwendung ohne NPM ausführen
Standardmäßig verwenden gehostete Ziele npm start
, um Ihre gehostete Zielanwendung auszuführen. In der vorherigen Aufgabe haben wir jedoch ein Problem bei der Verwendung von NPM besprochen, da neuere Versionen versuchen, /root/.npm
für den NPM-Cache zu verwenden. Dies ist nicht beschreibbar und führt dazu, dass Ihr gehostetes Ziel nicht gestartet werden kann. Die vorherige Aufgabe funktioniert um dieses Problem. Eine andere Möglichkeit wäre, die Anwendung ohne NPM auszuführen. Dazu können Sie die Werte command
und args
in der app.yaml
-Datei (Manifestdatei) Ihrer Anwendung verwenden, um Ihr gehostetes Ziel direkt mit node index.js
auszuführen. Beispiel:
runtime: node application: my-express-app command: node args: - index.js env: - name: NODE_ENV value: production - name: LOG_LEVEL value: 3Natürlich können Sie auch einen beliebigen Befehl verwenden, den Sie für geeignet halten.
node index.js
ist nur ein Beispiel.