Aufgaben zu gehosteten Zielen

Sie lesen gerade die Apigee Edge -Dokumentation.
Zur Apigee X -Dokumentation.
info

Bereitstellung eines Proxys für gehostete Ziele aufheben

Wenn Sie die Bereitstellung eines Edge-Proxys aufheben, der eine Anwendung für gehostete Ziele enthält, wird die zugehörige App für gehostete Ziele ebenfalls entfernt. Das zugrunde liegende Anwendungs-Image wird jedoch nicht gelöscht. Wenn Sie den Proxy neu bereitstellen, wird auch die App für gehostete Ziele neu bereitgestellt.

Proxy für gehostete Ziele löschen

Nachdem Sie einen Proxy für gehostete Ziele gelöscht haben, werden die zugrunde liegenden Laufzeitinstanzen nach einer bestimmten Zeit beendet. Der Anwendungscode bleibt jedoch erhalten.

Auf Protokolldateien zugreifen

Protokolldateien sind nützlich für das Debugging und die Fehlerbehebung. Für eine Bereitstellung gehosteter Ziele können Sie zwei Arten von Protokolldateien aufrufen:

  • Build-Protokoll : Enthält die Ausgabe im Zusammenhang mit der Bereitstellung und dem Erstellen einer App für gehostete Ziele.
  • Laufzeitprotokoll: Enthält die Ausgabe im Zusammenhang mit der Ausführung der App für gehostete Ziele. Laufzeitprotokolle sind auf die Umgebung beschränkt und enthalten Protokollinformationen für die aktuell bereitgestellte Proxy-Version.

Über die Edge-Benutzeroberfläche auf Protokolle zugreifen

  1. Rufen Sie apigee.com/edge auf.
  2. Geben Sie Ihre Anmeldedaten ein und klicken Sie auf Sign In (Anmelden).
  3. Wählen Sie im seitlichen Navigationsmenü Develop > API Proxies (Entwickeln > API-Proxys) aus.
  4. Wählen Sie den Proxy aus, für den Sie Protokolle aufrufen möchten.
  5. Klicken Sie auf den Tab Develop (Entwickeln).
  6. Klicken Sie auf Build Logs (Build-Protokolle), um das Build-Protokoll aufzurufen.
  7. Klicken Sie auf Runtime Logs (Laufzeitprotokolle), um das Laufzeitprotokoll aufzurufen.

Über die API auf Protokolle zugreifen

Sie können auch eine Edge-API verwenden, um Protokolle für gehostete Ziele abzurufen. Weitere Informationen finden Sie unter Zwischengespeicherte Node.js-Protokolle abrufen.

Privates npm-Repository verwenden

In diesem Abschnitt wird beschrieben, wie Sie einen Node.js-Proxy in gehosteten Zielen bereitstellen, wenn Sie in Ihrer Entwicklungsumgebung ein privates npm-Repository verwenden.

Wichtige Informationen zur Verwendung eines privaten Repositorys

Wenn Sie eine Node.js-App in Edge bereitstellen, werden alle Abhängigkeiten Ihres Projekts automatisch im Rahmen des Bereitstellungsprozesses importiert. Im Wesentlichen führt Hosted Targets bei der Bereitstellung npm install für Ihren Code aus. Wenn Sie jedoch in Ihrer Entwicklungsumgebung ein privates npm-Repository verwenden, können die privaten Abhängigkeiten in der Cloud nicht aufgelöst werden. In diesem Fall besteht die Lösung darin, die Option --bundled-dependencies zu verwenden, wenn Sie das Bereitstellungstool apigeetool verwenden. Weitere Informationen finden Sie unter Node.js von Ihrem System in Edge bereitstellen.

Wenn Sie das Flag --bundled-dependencies für apigeetool verwenden, wird Ihre Node.js-App in Hosted Targets hochgeladen. Alle lokalen/privaten Dateien, die im Array bundledDependencies in package.json aufgeführt sind, werden gezippt und mit dem Bundle hochgeladen.

Obwohl dies nicht häufig vorkommt, kann es passieren, dass Ihre Bereitstellung fehlschlägt wenn Sie ein öffentliches npm-Repository intern spiegeln und Ihr Bereitstellungsbundle eine .npmrc oder package-lock.json Datei enthält, die auf Ihren privaten Spiegel verweist. In diesem Fall müssen Sie .npmrc oder package-lock.json aus Ihrem Proxy-Bundle entfernen, das Sie bereitstellen möchten.

Mit einem privaten npm-Repository bereitstellen

So verwenden Sie Module aus einem privaten npm-Repository:

  1. Melden Sie sich bei npm an:
    npm login
  2. Rufen Sie ein npm-Authentifizierungstoken ab:
    1. Suchen Sie nach .npmrc (sollte sich in ~/.npmrc befinden).
    2. Notieren Sie sich in .npmrc das Token am Ende der Zeile, die so aussieht:

      //registry.npmjs.org/:_authToken=****
    3. Alternativ können Sie mit den npm token <list | create | revoke> Befehlen ein Authentifizierungstoken auflisten, erstellen oder widerrufen. Weitere Informationen finden Sie in der npm-token Dokumentation.
  3. Rufen Sie wie unten beschrieben die Konfigurationsseite für Schlüssel/Wert-Zuordnungen auf.

    Edge

    So rufen Sie über die Edge-Benutzeroberfläche die Konfigurationsseite für Schlüssel/Wert-Zuordnungen auf:

    1. Melden Sie sich bei apigee.com/edge an.
    2. Wählen Sie in der linken Navigationsleiste Admin > Environments > Key Value Maps (Admin > Umgebungen > Schlüssel/Wert-Zuordnungen) aus.

    Classic Edge (Private Cloud)

    So rufen Sie über die Classic Edge-Benutzeroberfläche die Konfigurationsseite für Schlüssel/Wert-Zuordnungen auf:

    1. Melden Sie sich bei http://ms-ip:9000 an. Dabei ist „ms-ip“ die IP-Adresse oder der DNS-Name des Management Server-Knotens.
    2. Wählen Sie in der oberen Navigationsleiste APIs > Environment Configuration > Key Value Maps (APIs > Umgebungskonfiguration > Schlüssel/Wert-Zuordnungen) aus.
  4. Klicken Sie auf + Key Value Map (+ Schlüssel/Wert-Zuordnung).
  5. Geben Sie im Dialogfeld „New Key Value Map“ (Neue Schlüssel/Wert-Zuordnung) einen Namen ein und wählen Sie Encrypted (Verschlüsselt) aus.
  6. Klicken Sie auf Hinzufügen.
  7. Fügen Sie das zuvor gefundene oder erstellte Authentifizierungstoken als neuen Eintrag in jeder der gerade erstellten Schlüssel/Wert-Zuordnungen hinzu.
  8. Fügen Sie in der Datei app.yaml einen Eintrag hinzu, der auf die Schlüssel/Wert-Zuordnung und den Schlüssel verweist, die mit dem npm-Authentifizierungstoken verknüpft sind. Die Ausgabe sollte ungefähr so aussehen:
  9. env:
    - name: NPM_TOKEN
     valueRef:
       name: npm_store
       key: private_token

    Wobei:

    • Das Attribut name auf oberster Ebene entspricht dem Namen der Umgebungsvariable die erstellt wird.
    • Der name unter valueRef entspricht der zuvor erstellten Schlüssel/Wert-Zuordnung.
    • Das Attribut key entspricht dem Schlüssel, der dem npm-Token zugeordnet ist, das Sie der Schlüssel/Wert-Zuordnung hinzugefügt haben.
  10. Erstellen Sie im selben Verzeichnis wie „package.json“ eine Datei .npmrc. Diese Datei sollte so aussehen:
    //registry.npmjs.org/:_authToken=${NPM_TOKEN}
    Wenn Sie registry.npmjs.org nicht verwenden, können Sie den Bereich in der Datei „.npmrc“ festlegen, indem Sie eine Zeile wie @myscope:registry=https://mycustomregistry.example.org hinzufügen. Weitere Informationen finden Sie in der Dokumentation zu npmrc.
  11. Laden Sie Ihren Node.js-Proxy mit den Dateien .npmrc und app.yaml hoch oder aktualisieren Sie ihn.
  12. Prüfen Sie, ob der neue oder aktualisierte Proxy bereitgestellt wird und mit dem gewünschten privaten Repository Modul funktioniert.
  13. Wenn der Proxy nicht bereitgestellt wird, prüfen Sie in den Build-Protokollen, ob bei der Installation des privaten npm-Moduls ein Fehler aufgetreten ist. Dann:
    1. Prüfen Sie auf dem Tab „Entwickeln“, ob .npmrc vorhanden ist.
    2. Prüfen Sie, ob Ihr Token gültig ist. Versuchen Sie dazu, das Modul lokal zu installieren, wobei das Token in der Schlüssel/Wert-Zuordnung vorhanden sein muss .
    3. Wenn Sie einen benutzerdefinierten Bereich verwenden, prüfen Sie, ob dieser festgelegt ist.

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 NPM_VERSION Umgebungsvariable angeben. Sie können diese Variable in der Manifestdatei der Anwendung festlegen. Weitere Informationen finden Sie unter Elemente der Manifestdatei.

Wenn Sie gebündelte Abhängigkeiten verwenden und NPM_VERSION nicht angeben, verwendet Hosted Targets standardmäßig NPM v4. Wenn Sie keine gebündelten Abhängigkeiten verwenden, wird die Version von NPM verwendet, die in Ihrer angegebenen Node.js-Laufzeit enthalten ist.

Beispiel für gebündelte Abhängigkeiten

Ein Beispiel für die Verwendung der Funktion für gebündelte Abhängigkeiten mit gehosteten Zielen finden Sie unter Node.js-Anwendung mit gehosteten Funktionen und benutzerdefinierten Modulen erstellen.

Endpunkt für die Systemdiagnose 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 gestartet wird, um zu prüfen, ob die Anwendung im Container ausgeführt wird.

Standardmäßig ist der von Apigee erwartete Endpunkt /health. Sie können den Standard Endpunkt ändern, indem Sie den Endpunkt in einer Umgebungsvariable namens HOSTED_TARGET_HEALTH_CHECK_PATH angeben. 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 die Systemdiagnose ist nicht erforderlich. Wenn Sie jedoch einen Endpunkt für die Systemdiagnose implementieren, beachten Sie Folgendes:

  • Wenn Ihre Anwendung beendet wird, wenn Apigee den Endpunkt erreicht, wird die Anwendung nicht wie erwartet gestartet.
  • Es ist in Ordnung, wenn Ihr Endpunkt den HTTP-Statuscode 404 „Not Found“ zurückgibt. Der /health oder HOSTED_TARGET_HEALTH_CHECK_PATH wird nur verwendet, um zu prüfen, ob Ihre Anwendung ausgeführt wird. Die tatsächliche Antwort wird ignoriert.

Speicherort des NPM-Cache ändern

Neuere Versionen von Node.js verwenden eine Version von NPM, 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 Die Laufzeit für gehostete Ziele verwendet ein tmpfs-Dateisystem, in dem nur /tmp beschreibbar ist. Um dieses Problem zu umgehen, können Sie die Umgebungsvariable npm_config_cache in Ihrer Anwendungsdatei app.yaml (der Manifestdatei) auf ein Verzeichnis in /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 verwendet Hosted Targets npm start, um Ihre Anwendung für gehostete Ziele auszuführen. In der vorherigen Aufgabe haben wir jedoch ein Problem mit der Verwendung von NPM besprochen, da neuere Versionen versuchen, /root/.npm für den NPM-Cache zu verwenden. Dieser Speicherort ist nicht beschreibbar und führt dazu, dass das Starten des gehosteten Ziels fehlschlägt. Die vorherige Aufgabe umgeht dieses Problem. Eine andere Möglichkeit besteht darin, Ihre Anwendung ohne NPM auszuführen. Dazu können Sie die Werte command und args in der Datei app.yaml Ihrer Anwendung (der Manifestdatei) 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: 3
  
Natürlich können Sie jeden beliebigen Befehl verwenden, den Sie für geeignet halten. node index.js ist nur ein Beispiel.