Sie lesen die Dokumentation zu Apigee Edge.
Sehen Sie sich die Apigee X-Dokumentation an. info
Limits für Umgebungsvariablen
Gehostete Ziele schränkt die Größe und Anzahl der Umgebungsvariablen ein, die Sie in der Laufzeitumgebung für gehostete Ziele festlegen können.
- 1.000: Maximale Länge einer einzelnen Umgebungsvariablen.
- 100: Maximale Anzahl von Umgebungsvariablen, die Sie festlegen können.
Informationen zum Festlegen von Umgebungsvariablen finden Sie unter Manifestdatei.
In der Anwendungslaufzeit festgelegte Umgebungsvariablen
Wenn Sie eine gehostete Zielanwendung bereitstellen, werden die folgenden Umgebungsvariablen festgelegt und stehen Ihrer Anwendung zur Laufzeit zur Verfügung:
APIGEE_ENVIRONMENT
: Die Umgebung, in der der gehostete Zielproxy bereitgestellt wird.APIGEE_ORGANIZATION
: Die Organisation, in der der gehostete Zielproxy bereitgestellt wird.PORT
: Der Port, den die gehostete Zielanwendung überwachen muss.
Zuweisung von Systemressourcen
Jede Instanz von Hosted Targets erhält die folgenden Ressourcen:
- 256 MB Arbeitsspeicher
- 1,2 GHz CPU
Skalierung
In diesem Abschnitt wird beschrieben, wie Anwendungen mit gehosteten Zielen je nach Art des Edge-Kontos skaliert werden.- Eine Testversion von Apigee Edge ist auf eine Instanz von „Gehostete Ziele“ pro Proxy beschränkt.
- Bei kostenpflichtigen Apigee Edge-Konten erfolgt die automatische Skalierung auf der Grundlage von Anfragerate, Antwortlatenz und anderen Anwendungsmesswerten pro Proxy.
- Apps mit gehosteten Zielen, die sowohl in der kostenpflichtigen als auch in der Testversion von Apigee Edge bereitgestellt werden, werden bei Inaktivität auf null skaliert. In diesem Fall kann es für einen kurzen Zeitraum zu längeren Antwortzeiten kommen. Weitere Informationen finden Sie im Hilfeartikel Bekannte Probleme.
Die Manifestdatei
Um Laufzeitinformationen zum Erstellen und Bereitstellen der gehosteten Anwendung zu erfassen, sucht Edge im Verzeichnis resources/hosted nach einer Manifestdatei mit dem Namen app.yaml. Diese Datei enthält Informationen, die zum Erstellen und Bereitstellen der Anwendung „Hosted Targets“ erforderlich sind.
Verwaltete Dateisyntax
runtime: node runtimeVersion: version_number command: command_name args: argument_array env: - name: variable_name value: literal_value - name: variable_name valueRef: name: kvm_name key: kvm_value
Elemente der Manifestdatei
Eine Manifestdatei app.yaml enthält folgende Elemente:
- runtime (erforderlich): Gibt die Art der Anwendung an, die Sie bereitstellen.
Sie müssen
node
angeben. - runtimeVersion: (Optional) Die Version der Laufzeit, die von Ihrer Anwendung verwendet wird. Standardeinstellung: Node.js LTS (v10.x). Weitere Optionen finden Sie im offiziellen Docker-Repository für Node.
- command (optional): Hier können Sie einen anderen Befehl als den Standardbefehl angeben, mit dem Ihre Anwendung gestartet wird. Standard:
Node.js=npm
- args – (optional) Array von Befehlszeilenargumenten, die an die Anwendung übergeben werden sollen (in der Standard-YAML-Array-Syntax angegeben). In der Regel werden diese dem Standardbefehl hinzugefügt.
Der Standardwert ist start. Beispielsweise wird der Node.js-Anwendung standardmäßig der Befehl
npm start
übergeben. - env – Optional: Ein Array von Umgebungsvariablen (Name/Wert-Paare), die in der Laufzeitumgebung der gehosteten Ziele festgelegt werden sollen. Diese Variablen sind für die bereitgestellte Anwendung „Gehostete Ziele“ verfügbar.
- name: Der Variablenname.
- Wert | WertRef – Sie haben zwei Möglichkeiten. Sie können einen Literalwert festlegen oder auf einen Wert verweisen, der in einer Schlüssel/Wert-Zuordnung gespeichert ist. Die Schlüssel/Wert-Zuordnung muss bereits in Ihrer Edge-Umgebung vorhanden sein. Weitere Informationen finden Sie unter Mit Schlüssel/Wert-Zuordnungen arbeiten.
- Wenn Sie value verwenden, müssen Sie eine Variable
name
und ein Literalvalue
angeben. Beispiel:runtime: node env: - name: NODE_ENV value: production
- Wenn Sie valueRef verwenden, müssen Sie den Namen einer Schlüssel/Wert-Zuordnung (KVM) angeben, die Sie zuvor in Edge erstellt haben, und einen Schlüssel.
Beispiel:
runtime: node env: - name: DB_ENV value: production - name: DB_PASSWORD valueRef: name: hosted-kvm key: db-password
- Wenn Sie value verwenden, müssen Sie eine Variable
Beispielmanifestdateien
Dieser Abschnitt enthält Beispielmanifestdateien für Node.js-Anwendungen. Zum Bereitstellen einer gehosteten Targets-Anwendung ist eine Manifestdatei im Verzeichnis apiproxy/resources/hosted
erforderlich. Der Dateiname muss app.yaml
lauten.
Hier sehen Sie app.yaml
-Beispieldateien (Manifestdateien) für Node.js-Apps.
Beispiel für eine Umgebungsvariable mit einem Literal:
runtime: node env: - name: NODE_ENV value: production
Beispiel mit einem Startbefehl, Befehlszeilenargumenten und einer Umgebungsvariablen.
runtime: node command: ./node_modules/pm2/bin/pm2 env: - name: NODE_ENV value: production args: - app.js
Beispiel für eine KVM-Referenz (Schlüssel/Wert-Zuordnung):
Weitere Informationen zum KVM-Zugriff finden Sie unter Manifestdatei.
runtime: node env: - name: DB_ENV value: production - name: DB_PASSWORD valueRef: name: hosted-kvm key: db-password
Beispiele für gehostete Ziele auf GitHub
Apigee stellt auf GitHub Beispielproxies mit Hosted Targets-Anwendungen bereit, die in Node.js geschrieben wurden. Sie können dieses Repository klonen und der README-Anleitung zum Bereitstellen der Proxys folgen.
Vorbereitung
Zum Bereitstellen der Beispiele müssen zwei Tools auf Ihrem System installiert sein:
- apigeetool: Befehlszeilentool zum Bereitstellen von Edge-Proxys.
- get_token: Befehlszeilentool zum Abrufen eines Autorisierungstokens, das von apigeetool benötigt wird.
Wenn Sie Beispiele lokal testen möchten, muss außerdem Node.js installiert sein.
Beispiel-Repository abrufen
- Rufen Sie in einem Browser https://github.com/apigee/api-platform-samples auf.
- Klicken Sie auf Klonen oder herunterladen und rufen Sie das Repository mit Ihrer bevorzugten Methode auf Ihr lokales System ab.
- Wechseln Sie mit cd zu <Ihr Installationsverzeichnis>/api-platform-samples/doc-samples/hosted-targets.
- Nachdem das Repository heruntergeladen wurde, können Sie zu einem der Beispielverzeichnisse wechseln und der README-Anleitung folgen, um einen Beispielproxy in Edge bereitzustellen. Der Bereitstellungsbefehl wird unten gezeigt. Ersetzen Sie einfach die angegebenen Parameter durch die für Ihr Apigee-Konto:
get_token && apigeetool deployproxy \ -o YOUR_ORGANIZATION \ -e YOUR_ENVIRONMENT \ --json \ --token "$(< ~/.sso-cli/valid_token.dat)"\ --api NAME_OF_THE_PROXY \ --directory .
Beispiel: Beispielanwendung ausführen
Beispiel-Repository klonen
cd ~/myhome
git clone https://github.com/apigee/api-platform-samples.git
cd ~/myhome/api-platform-samples/doc-samples/hosted-targets
cd node-hosted-hello
Anwendung lokal testen
Für diesen lokalen Test muss Node.js installiert sein.
PORT=8081 node apiproxy/resources/hosted/index.js
curl http://localhost:8081
Beispielausgabe:
{"date":"2018-03-12T21:45:22.161Z","msg":"Hello, World!"}
Proxy bereitstellen
get_token && apigeetool deployproxy \ -o myorg \ -e test \ --json \ --token "$(< ~/.sso-cli/valid_token.dat)"\ --api node-hosted-hello \ --directory .
Deployment testen
Die Bereitstellung kann einige Minuten dauern. Wenn ein Bereitstellungsfehler auftritt, führen Sie den Befehl „deploy“ noch einmal aus.
curl http://myorg-test.apigee.net/node-hosted-hello
Beispielausgabe:
{"date":"2018-03-23T18:59:18.668Z","msg":"Hello, World!"
Bekannte Probleme
- Netzwerklatenzen: Da die Node.js-Anwendung nicht mehr in der JVM des Multi-Prozess-Managers ausgeführt wird, gibt es jetzt einen Netzwerk-Hop zwischen dem Multi-Prozess-Manager und der Bereitstellung. Natürlich ist das mit Kosten verbunden, aber erste Benchmarks zeigen, dass sie im Rahmen eines angemessenen Betrags liegen.
- Langsame API-Antworten: Die Infrastruktur, auf der Ihre Anwendungen ausgeführt werden, wird bedarfsgerecht automatisch skaliert. Das bedeutet, dass Ihre Anwendung auf null Instanzen herunterskaliert werden kann. In diesem Fall dauert die nächste API-Anfrage etwas länger als normale API-Anfragen, da die Infrastruktur die Instanzen zur Verarbeitung der Anfragen startet.
- Bereitstellungsfehler: Wenn beim Bereitstellen eines Proxys für gehostete Ziele ein Bereitstellungsfehler auftritt, versuchen Sie, den Proxy noch einmal bereitzustellen. In einigen Fällen kann die Bereitstellung eine Zeitüberschreitung verursachen. Wenn Sie sie noch einmal bereitstellen, wird das Problem von selbst behoben.