Aufgaben zu gehosteten Zielen

<ph type="x-smartling-placeholder"></ph> Sie sehen die Dokumentation zu Apigee Edge.
Gehen Sie zur Apigee X-Dokumentation.
Weitere Informationen

<ph type="x-smartling-placeholder">

Bereitstellung eines gehosteten Targets-Proxys aufheben

Wenn Sie die Bereitstellung eines Edge-Proxys aufheben, der eine Anwendung vom Typ "Gehostete Ziele" enthält, wird der zugehörige Die Bereitstellung der gehosteten Targets-Anwendung wurde aufgehoben, das zugrunde liegende Anwendungs-Image wird jedoch nicht gelöscht. Wenn Sie Proxy noch einmal bereitstellen, wird die Anwendung für gehostete Ziele noch einmal bereitgestellt.

Gehostete Ziele-Proxy löschen

Nachdem Sie einen Proxy für gehostete Ziele gelöscht haben, werden die zugrunde liegenden Laufzeitinstanzen nicht mehr ausgeführt innerhalb eines gewissen Zeitraums. Der Anwendungscode bleibt jedoch erhalten.

Auf Protokolldateien zugreifen

Protokolldateien sind hilfreich für die Fehlerbehebung. Sie können zwei Arten von Protokolldateien für eine Bereitstellung gehosteter Ziele:

  • Build-Log: Zeigt die Ausgabe in Bezug auf die Bereitstellung und Erstellung einer gehosteten Targets-Anwendung an.
  • Laufzeitprotokoll: Zeigt die Ausgabe in Bezug auf die ausgeführte Anwendung für gehostete Ziele an. Laufzeitlogs sind auf die Umgebung beschränkt und zeigen Loginformationen für die aktuell bereitgestellte Proxyversion an.

Auf Protokolle über die Edge-Benutzeroberfläche zugreifen

  1. Gehen Sie zu apigee.com/edge.
  2. Geben Sie Ihre Anmeldedaten ein und klicken Sie auf Anmelden.
  3. Wählen Sie Entwickeln > API-Proxys.
  4. Wählen Sie den Proxy aus, für den Sie Logs aufrufen möchten.
  5. Klicken Sie auf den Tab Entwickeln.
  6. Klicken Sie auf Build-Logs, um das Build-Log aufzurufen.
  7. Klicken Sie zum Aufrufen des Laufzeitprotokolls auf Laufzeitlogs.

Mit der API auf Logs zugreifen

Sie können auch eine Edge API verwenden, um Logs von gehosteten Zielen 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 ein privates npm-Repository in Ihrer Entwicklungsumgebung.

Was Sie über die Verwendung eines privaten Repositorys wissen müssen

Wenn Sie eine Node.js-App in Edge bereitstellen, werden alle Abhängigkeiten Ihres Projekts automatisch importiert im Rahmen des Bereitstellungsprozesses. Im Wesentlichen führen gehostete Ziele npm install für Ihren Code aus, wenn dieser bereitgestellt wird. Wenn Sie in Ihrer Entwicklungsumgebung jedoch ein privates npm-Repository verwenden, wird das private Abhängigkeiten in der Cloud nicht aufgelöst werden können. In In diesem Fall besteht die Lösung darin, die Option --bundled-dependencies zu verwenden, wenn Sie den Bereitstellungsdienstprogramm apigeetool. Siehe auch Stellen Sie Node.js von Ihrem System in Edge bereit.

Wenn Sie das Flag --bundled-dependencies für apigeetool verwenden, Die Node.js-Anwendung wird in gehostete Ziele und alle aufgeführten lokalen/privaten Dateien hochgeladen. im bundledDependencies-Array in package.json werden gezippt und mit dem Bundle hochgeladen.

Obwohl dies nicht häufig der Fall ist, sollten Sie beachten, dass Ihre Bereitstellung fehlschlägt, wenn Sie ein öffentliches NPM-Repository intern spiegeln. Ihr Deployment-Bundle enthält eine .npmrc- oder package-lock.json-Datei, die auf an Ihren Spiegel. Lassen Sie in diesem Fall .npmrc oder package-lock.json weg. aus dem Proxy-Bundle, das Sie bereitstellen möchten.

Mit einem privaten NPM-Repository bereitstellen

So verwenden Sie Module, die aus einem privaten NPM-Repository bereitgestellt werden:

  1. Melden Sie sich bei npm an:
    npm login
  2. Rufen Sie ein npm-Authentifizierungstoken ab:
    1. Suchen Sie Ihre .npmrc-Datei. Diese sollte im Format ~/.npmrc vorliegen.
    2. Notieren Sie sich in Ihrer .npmrc-Datei das Token am Ende der Zeile, das so aussieht:

      //registry.npmjs.org/:_authToken=****
    3. Oder verwenden Sie die npm token <list | create | revoke>-Befehle, um Folgendes aufzulisten: Authentifizierungstoken erstellen oder widerrufen. Siehe npm-Token in der Dokumentation.
  3. Rufen Sie die Konfigurationsseite für die Schlüsselwertzuordnungen auf, wie unten beschrieben.

    Edge

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

    1. Melden Sie sich bei apigee.com/edge an.
    2. Wählen Sie Verwaltung > Umgebungen > Schlüssel/Wert-Zuordnungen.

    Classic Edge (Private Cloud)

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

    1. Melden Sie sich in http://ms-ip:9000 an. ms-ip ist hierbei IP-Adresse oder DNS-Name des Verwaltungsserverknotens.
    2. Wählen Sie APIs > Umgebungskonfiguration > Schlüssel/Wert-Zuordnungen.
  4. Klicken Sie auf + Schlüssel/Wert-Zuordnung.
  5. Geben Sie im Dialogfeld „Neue Schlüsselwertzuordnung“ einen Namen ein und wählen Sie Verschlüsselt aus.
  6. Klicken Sie auf Hinzufügen.
  7. Fügen Sie in jeder KVMs das Authentifizierungstoken hinzu, das Sie zuvor gefunden oder als neuen Eintrag erstellt haben die Sie gerade erstellt haben.
  8. Fügen Sie der Datei app.yaml einen Eintrag hinzu, der auf die KVM 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 der obersten Ebene entspricht dem Namen der Umgebung. Variable erstellt wird.
    • Der Name unter valueRef entspricht der KVM, die Sie die zuvor erstellt wurden.
    • Das Attribut key entspricht dem Schlüssel, der dem npm-Token entspricht, das Sie die der KVM hinzugefügt wurde.
  10. Erstellen Sie im selben Verzeichnis wie die Datei „package.json“ eine .npmrc-Datei. Dieses sollte in etwa so aussehen:
    //registry.npmjs.org/:_authToken=${NPM_TOKEN}
    Wenn Sie registry.npmjs.org nicht verwenden, können Sie den Geltungsbereich in der npmrc-Datei indem Sie eine Zeile wie diese @myscope:registry=https://mycustomregistry.example.org hinzufügen Weitere Informationen finden Sie in der npmrc-Dokumentation.
  11. Laden Sie Ihren Node.js-Proxy mit den Dateien .npmrc und app.yaml hoch oder aktualisieren Sie ihn.
  12. Achten Sie darauf, dass der neue oder aktualisierte Proxy das gewünschte private Repository bereitgestellt und mit diesem funktioniert -Modul.
  13. Wenn der Proxy nicht bereitgestellt wird, sehen Sie in den Build-Logs nach, ob die Installation des privates npm-Modul. Dann:
    1. Achten Sie darauf, dass auf dem Tab „Develop“ die .npmrc-Datei vorhanden ist.
    2. Prüfen Sie, ob Ihr Token gültig ist. Versuchen Sie, das Modul lokal mit dem Token zu installieren in der kvm.
    3. Wenn Sie einen benutzerdefinierten Umfang verwenden, muss dieser festgelegt sein.

NPM-Version für gebündelte Abhängigkeiten angeben

Standardmäßig wird NPM v4 verwendet, um gebündelte Abhängigkeiten in der Umgebung von gehosteten Zielen zu installieren. Wenn Sie jedoch eine andere Version für die Verwaltung von Werbenetzwerkpartnern verwenden möchten, können Sie diese in der Datei NPM_VERSION angeben. Umgebungsvariable ein. Sie können diese Variable in der Manifestdatei der Anwendung festlegen. Weitere Informationen finden Sie unter Manifestdateielemente.

Wenn Sie gebündelte Abhängigkeiten verwenden und NPM_VERSION nicht angeben, werden gehostete Ziele verwendet standardmäßig Version 4 von NPM. Wenn Sie keine gebündelten Abhängigkeiten verwenden, wird die enthaltene Version von NPM in der angegebenen Node.js-Laufzeit verwendet wird.

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 Systemdiagnose hinzufügen

Sie können einen Endpunkt für Systemdiagnosen für Ihre Node.js-Anwendung implementieren. Apigee verwendet diesen Endpunkt, wenn Ihr Die Node.js-Anwendung beginnt zu prüfen, ob die Anwendung im Container ausgeführt wird.

Standardmäßig erwartet Apigee /health. Sie können die Standardeinstellung Endpunkt, indem Sie den Endpunkt in einer Umgebungsvariable angeben, HOSTED_TARGET_HEALTH_CHECK_PATH Sie können diese Variable im Manifest der Anwendung festlegen -Datei. Weitere Informationen finden Sie unter Manifestdateielemente.

Die Implementierung eines Endpunkts für Systemdiagnosen ist nicht erforderlich. Wenn Sie jedoch eine Systemdiagnose -Endpunkt erhalten, beachten Sie Folgendes:

  • Wenn Ihre Anwendung beendet wird, wenn Apigee den Endpunkt erreicht, wird die Anwendung nicht wie erwartet gestartet.
  • Der Endpunkt kann den HTTP-Status „404 Nicht gefunden“ zurückgeben. Das /health- oder Mit HOSTED_TARGET_HEALTH_CHECK_PATH wird nur 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 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 da die Laufzeit des gehosteten Ziels ein temporäres Dateisystem verwendet, in dem nur /tmp beschreibbar ist. Zur Umgehung dieses Problems können Sie die Umgebungsvariable npm_config_cache in Ihrer App app.yaml-Datei (Manifestdatei) in ein Verzeichnis in /tmp. 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

Gehostete Ziele verwenden standardmäßig npm start, um eine gehostete Zielanwendung auszuführen. Aber In der vorherigen Aufgabe haben wir ein Problem bei der Nutzung von NPM besprochen, da in neueren Versionen versucht wird, /root/.npm für den npm-Cache, der nicht beschreibbar ist und zu Ihrem gehosteten Ziel führt nicht starten kann. Während die vorherige Aufgabe diesem Problem zugrunde liegt, könnte eine andere Option sein, die Anwendung ohne NPM ausführen. Dazu können Sie command und args-Werte im app.yaml-Datei (Manifestdatei) 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, der für Sie geeignet ist. node index.js ist nur ein Beispiel.