Zum Hauptinhalt springen

Mit Services verbinden

Beta

Dieses Feature befindet sich derzeit in der Beta-Phase und ist nur über nctl verfügbar. Cockpit-Unterstützung ist noch nicht implementiert.

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).

Demnächst verfügbar

Das Verwalten von Service-Referenzen in Cockpit ist noch nicht verfügbar. Wir arbeiten derzeit an der Implementierung. Bitte verwende vorerst nctl.

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, den du in --service <name>=... vergibst (der name-Teil), in Grossbuchstaben und mit nicht-alphanumerischen Zeichen ersetzt durch _. Der Referenzname 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 aus, indem du das Release wiederholst:

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.

Injizierte Variablen überprüfen

Demnächst verfügbar

Das Anzeigen der injizierten Variablen im Cockpit ist noch nicht verfügbar. Wir arbeiten derzeit an der Implementierung. Bitte verwende vorerst nctl.