Zum Hauptinhalt springen
API-Referenz

Mit Services verbinden

Beta

Dieses Feature befindet sich derzeit in der Beta-Phase.

Deploio-Applikationen können sich mit On-Demand Services wie Datenbanken und Key-Value-Stores verbinden, indem sie Service-Referenzen in der Applikation definieren. Nine injiziert die Verbindungsdaten automatisch als Umgebungsvariablen in die Applikation zur Laufzeit.

Dabei erstellt und verwaltet Nine automatisch eine verschlüsselte ServiceConnection im Projekt des Ziel-Services. Eine manuelle Netzwerkkonfiguration ist nicht erforderlich.

Unterstützte Services​

Folgende Service-Typen können von einer Deploio-Applikation referenziert werden:

Service-Referenz hinzufügen​

Jede Service-Referenz erfordert ein Ziel (den gewünschten Service).

  1. Öffne die Applikation und wechsle zum Tab Verbundene Services.
  2. Klicke auf Service verbinden.
  3. Wähle einen existierenden Service aus einem beliebigen Projekt oder erstelle einen neuen. Neue Services werden nach dem Erstellen automatisch verbunden.

Der Service-Name wird als Referenzname verwendet. Um eine Referenz zu entfernen, klicke auf Trennen.

Injizierte Umgebungsvariablen​

Wenn Service-Referenzen konfiguriert sind, injiziert Nine die Verbindungsdaten als Umgebungsvariablen in jede Instanz der Applikation. Die Variablennamen folgen dem Format NINE_<IDENTIFIER>_<NAME>_<KEY>:

  • <IDENTIFIER> ist ein Kürzel für den Service-Typ, zum Beispiel KVS, PG oder MYSQL. Die Tabellen unten zeigen den jeweiligen Identifier für ihren Service-Typ.
  • <NAME> ist der Referenzname (der name in --service <name>=... oder der Service-Name in Cockpit), in Grossbuchstaben und mit nicht-alphanumerischen Zeichen ersetzt durch _. cache wird zum Beispiel zu CACHE.
  • <KEY> bezeichnet das Verbindungsdetail, zum Beispiel FQDN, PORT oder PASSWORD.

Die Variablennamen verwenden den von dir gewählten Referenznamen, nicht den Namen der Ziel-Serviceressource. --service cache=keyvaluestore/my-kvs erzeugt zum Beispiel Variablen wie NINE_KVS_CACHE_FQDN — mit cache, nicht mit my-kvs.

Ein neues Release ist erforderlich

Das Hinzufügen oder Ändern einer Service-Referenz aktualisiert eine laufende Instanz nicht automatisch. Nine injiziert die Variablen nur, wenn ein neues Release erstellt wird. Wenn deine Änderung nicht ohnehin ein neues Release erzeugt, löse eines mit Nochmals releasen in Cockpit oder mit nctl aus:

nctl update app my-app --retry-release

Dadurch wird die Applikation erneut deployt: Deploio erstellt neue Instanzen mit der aktualisierten Umgebung und ersetzt die derzeit aktiven Instanzen. Rechne mit einem Deployment-Zyklus und plane die Änderung entsprechend.

Die verfügbaren Variablen hängen vom Service-Typ ab:

VariableBeschreibung
NINE_KVS_<NAME>_FQDNHostname. Verwendet privates Networking-DNS, wenn privates Networking konfiguriert ist; andernfalls den öffentlichen Hostname.
NINE_KVS_<NAME>_PORTPort (immer 6379).
NINE_KVS_<NAME>_USERBenutzername.
NINE_KVS_<NAME>_PASSWORDPasswort.
NINE_KVS_<NAME>_CA_CERTCA-Zertifikat. Wird nur injiziert, wenn ein CA-Zertifikat vorhanden ist.
NINE_KVS_<NAME>_DSNRedis-Verbindungs-URI mit TLS (rediss://user:pass@host:port).

Injizierte Variablen überprüfen​

Öffne den Tab Variablen der Applikation. Injizierte Variablen werden mit der Ebene Service aufgeführt.

Falls sie fehlen, prüfe, ob nach dem Hinzufügen der Service-Referenz ein neues Release erstellt wurde.