Zum Hauptinhalt springen

ConfigMap

Der Abschnitt ConfigMap ermöglicht es Ihnen, Schlüssel-Wert-Konfigurationseinträge für Ihren Bot zu verwalten. Diese Einträge können sensible Daten wie API-Schlüssel, umgebungsspezifische Einstellungen oder benutzerdefinierte Konfigurationswerte speichern, auf die Ihre Bot-Aktionen und -Agenten zur Laufzeit zugreifen können.

Diese Funktion bietet eine sichere Möglichkeit, Konfigurationen aus Ihrem Code auszulagern, und folgt den Best Practices für das Management von Geheimnissen und umgebungsspezifischen Einstellungen.

Übersicht

Navigieren Sie zu Inhalt → ConfigMap in der Seitenleiste, um alle Konfigurationseinträge für Ihren Bot anzuzeigen.

Die Tabelle zeigt die folgenden Informationen für jeden Eintrag an:

  • Schlüssel: Der eindeutige Bezeichner für die Konfiguration
  • Wert: Der gespeicherte Konfigurationswert
  • Beschreibung: Optionale Beschreibung, die den Zweck erklärt
  • Schreibschutz: Schloss-Symbol zeigt geschützte Einträge an

Erstellen eines ConfigMap-Eintrags

Um einen neuen Konfigurationseintrag zu erstellen:

  1. Klicken Sie auf die Schaltfläche + Erstellen in der oberen rechten Ecke
  2. Füllen Sie die erforderlichen Felder im Modal aus:
    • Schlüssel: Ein eindeutiger Bezeichner für Ihre Konfiguration (z.B. WEBHOOK_URL, API_KEY)
    • Wert: Der zu speichernde Konfigurationswert
    • Beschreibung (optional): Eine lesbare Beschreibung, die den Zweck dieses Eintrags erklärt
  3. Optional können Sie den Schreibschutz aktivieren, indem Sie den Schlossschalter betätigen
  4. Klicken Sie auf Erstellen, um den Eintrag zu speichern

Verwaltung von Einträgen

Klicken Sie auf eine beliebige Zeile in der Tabelle, um das Bearbeitungsmodal zu öffnen, in dem Sie:

  • Den Schlüssel, den Wert oder die Beschreibung ändern können
  • Den Schreibschutz ein- oder ausschalten können
  • Den Eintrag mit der Schaltfläche Löschen löschen können

Schreibschutz

Einträge können mit dem Schlossschalter als geschützt markiert werden. Geschützte Einträge:

  • Zeigen ein grünes Schloss-Symbol im Raster an
  • Werden während Bot-Importen beibehalten (nicht überschrieben)
  • Nützlich für umgebungsspezifische Werte wie Produktions-API-Schlüssel

Tipp: Markieren Sie umgebungsspezifische Einträge (wie Produktions-API-Schlüssel) als geschützt, um versehentliche Überschreibungen beim Importieren von Bot-Konfigurationen aus anderen Umgebungen zu verhindern.


Zugriff auf ConfigMap-Werte in Skripten

ConfigMap-Werte werden automatisch geladen, wenn ein Gespräch beginnt, und können in Ihren benutzerdefinierten Agenten und Skripten mit der Methode get_config_value() abgerufen werden.

Beispiel: Zugriff auf eine Webhook-URL

async def run(tracker, context):
# Einen Konfigurationswert abrufen
webhook_url = tracker.get_config_value("WEBHOOK_URL")

if webhook_url is None:
tracker.warning("WEBHOOK_URL nicht in ConfigMap konfiguriert")
return

# Verwenden Sie die Webhook-URL in Ihrer Integration
await send_data_to_webhook(webhook_url, context.get("collected_data"))

return {"status": "sent"}

API-Methodenreferenz

tracker.get_config_value(key: str) -> str | None

Ruft einen Konfigurationswert aus der ConfigMap des Bots ab.

Parameter:

  • key (str): Der abzurufende Konfigurationsschlüssel

Rückgabewerte:

  • str: Der Konfigurationswert, wenn der Schlüssel existiert
  • None: Wenn der Schlüssel nicht existiert

Anwendungsfälle

1. Speichern von externen API-Anmeldeinformationen

Speichern Sie API-Schlüssel für Drittanbieterdienste, mit denen Ihr Bot integriert ist:

SchlüsselBeispielwertBeschreibung
SALESFORCE_API_KEY123-test-xxxAnmeldeinformationen für CRM-Integration
SENDGRID_API_KEYSG.xxxxxAuthentifizierung des E-Mail-Dienstes
STRIPE_SECRET_KEYsk_live_xxxAnmeldeinformationen für Zahlungsabwicklung

2. Umgebungsspezifische Konfiguration

Verwalten Sie unterschiedliche Konfigurationen über Umgebungen hinweg:

SchlüsselBeispielwertBeschreibung
WEBHOOK_URLhttps://my-fancy-server.com/apiURL für externe Webhook-Rückrufe
DEBUG_MODEfalseAktivieren/deaktivieren Sie ausführliches Logging
MAX_RETRY_ATTEMPTS3Konfigurieren Sie das Wiederholungsverhalten

3. Feature-Flags

Steuern Sie die Verfügbarkeit von Funktionen ohne Codeänderungen:

SchlüsselBeispielwertBeschreibung
ENABLE_PREMIUM_FEATUREStruePremium-Funktionalität umschalten
MAINTENANCE_MODEfalseBestimmte Flows vorübergehend deaktivieren

4. Geschäftskonfiguration

Speichern Sie geschäftsspezifische Werte, die sich ändern können:

SchlüsselBeispielwertBeschreibung
SUPPORT_EMAILsupport@company.comKontakt-E-Mail für Eskalationen
BUSINESS_HOURS_START09:00Öffnungszeit
BUSINESS_HOURS_END18:00Schließzeit

Backup- und Wiederherstellungsverhalten

ConfigMap-Einträge sind in Bot-Backups und -Exporten enthalten:

  • Geschützte Einträge werden während Importen und Wiederherstellungen beibehalten, wenn die Option "Geschützte Werte beibehalten" aktiviert ist
  • Ungeschützte Einträge werden während Importen überschrieben
  • Einträge werden zusammen mit anderen Bot-Konfigurationen versioniert

Best Practices

  1. Verwenden Sie beschreibende Schlüssel: Wählen Sie klare, konsistente Namenskonventionen (z.B. SERVICE_API_KEY, FEATURE_ENABLED)
  2. Fügen Sie Beschreibungen hinzu: Dokumentieren Sie den Zweck jedes Eintrags für Teammitglieder
  3. Schützen Sie sensible Werte: Aktivieren Sie den Schreibschutz für Produktionsanmeldeinformationen
  4. Speichern Sie keine großen Daten: ConfigMap ist für kleine Konfigurationswerte ausgelegt, nicht für große Datensätze
  5. Behandeln Sie fehlende Werte: Überprüfen Sie immer, ob get_config_value() None zurückgibt, und behandeln Sie dies angemessen
# Gute Praxis: Fehlende Konfiguration behandeln
api_key = tracker.get_config_value("EXTERNAL_API_KEY")
if not api_key:
tracker.error("Fehlende erforderliche Konfiguration: EXTERNAL_API_KEY")
return {"error": "Konfiguration fehlt"}