Fehlerbehebung für die Databricks CLI

Hinweis

Die Verwendung von Databricks CLI unterliegt der Datenbricks-Lizenz - und Databricks-Datenschutzerklärung, einschließlich der Bestimmungen zu Nutzungsdaten.

Verwenden Sie die folgenden Informationen, um Probleme mit der Databricks CLI zu beheben.

Aktivieren der Protokollierung

Wenn ein Befehl fehlschlägt oder nicht die erwartete Ausgabe erzeugt, können Sie die Protokollierung verwenden, um zu ermitteln, was möglicherweise schief gegangen ist. Sie können Nachrichten protokollieren, die die Databricks CLI über verschiedene Befehlsereignisse, Warnungen und Fehler ausgibt. Um diese Nachrichten zu protokollieren, geben Sie die folgenden Databricks CLI-Befehlsoptionen an:

Flag Beschreibung
--log-file Eine Zeichenfolge, die die Datei darstellt, in die Ausgabeprotokolle geschrieben werden sollen. Wenn dieses Flag nicht angegeben ist, werden Ausgabeprotokolle standardmäßig in stderr geschrieben.
--log-format text, um Ausgabeprotokolle in Text zu schreiben, oder json, um Ausgabeprotokolle in JSON zu schreiben. Wenn dieses Flag nicht angegeben ist, werden Ausgabeprotokolle als Text geschrieben.
--log-level Eine Zeichenfolge, die die Protokollformatebene darstellt. Gültige Protokollebenen sind error, warn, info, debug, trace und disabled. Die Standardebene lautet disabled, was bedeutet, dass nichts protokolliert wird. --debug entspricht --log-level debug.

Im folgenden Beispielbefehl werden Ablaufverfolgungsmeldungen für den angegebenen Befehl in eine Datei namens databricks-cli.log im JSON-Format protokolliert.

databricks clusters list --log-file databricks-cli.log --log-format json --log-level trace

Fehler beim Herunterladen von Terraform

Ein abgelaufener Schlüssel in einigen Versionen der Databricks CLI verursacht den folgenden Fehler beim Ausführen databricks bundle deploy:

error downloading Terraform: unable to verify checksums signature: openpgp: key expired

Um diesen Fehler zu beheben, aktualisieren Sie die Databricks CLI auf eine neueste gepatchte Version, die den Überprüfungsmechanismus aktualisiert, um mit einem neueren Schlüssel zu arbeiten. Aktualisieren Sie auf die gepatchte Version, die Ihrer aktuellen CLI-Nebenversion entspricht:

  • Binärinstallation: Laden Sie die gepatchte Version von der Seite mit Databricks CLI-Veröffentlichungen auf GitHub herunter.

  • setup-cli (als Installationsskript oder GitHub Aktion): Aktualisieren Sie die Version in Ihrer Konfiguration auf eine gepatchte Version von der Seite Databricks CLI auf GitHub.

    Verwenden Sie z. B. 0.296.1 mit der GitHub Aktion:

    - uses: databricks/setup-cli@main
      with:
        version: 0.296.1
    

Fehler bei gespeicherten Anmeldeinformationen

Ab Databricks CLI Version 1.0.0 speichert die Databricks CLI Benutzer-zu-Computer-Authentifizierungstoken (U2M)-Authentifizierungstoken im systemeigenen sicheren Speicher (Schlüsselbund unter macOS, Anmeldeinformations-Manager auf Windows, D-Bus Secret Service unter Linux) anstelle einer JSON-Datei. Siehe Tokenspeicher. Wenn Ihr Workflow auf der JSON-Datei basiert, funktioniert er nicht mit der neuen Speichermethode, und es können Probleme in den folgenden Szenarien auftreten:

  • Auf GA aktualisiert, noch nicht wieder angemeldet. Die Databricks CLI liest keine Anmeldeinformationen mehr, die von älteren Versionen gespeichert sind, und gibt einen Fehler zurück:

    Stored credentials from older CLI versions are no longer used.
    Run "databricks auth login" to sign in again.
    
    If secure storage is not available in this environment, set
    DATABRICKS_AUTH_STORAGE=plaintext and re-run login.
    

    Führen Sie databricks auth login aus, um das Problem zu beheben.

  • Die Prüfung des sicheren Speichers schlägt beim Anmelden fehl Während databricks auth login überprüft die Databricks CLI den sicheren Speicher, bevor der OAuth-Ablauf gestartet wird. Wenn die Überprüfung fehlschlägt (am häufigsten in Linux-Containern, SSH-Sitzungen, WSL1 und Headless-Servern, auf denen D-Bus nicht ausgeführt wird), hängt das Verhalten davon ab, ob sicherer Speicher explizit konfiguriert wurde:

    • Standardmodus ohne explizite Speichereinstellung: die Databricks CLI fällt stillschweigend auf Klartext zurück und schreibt auth_storage = plaintext in den Abschnitt [__settings__] von ~/.databrickscfg. Nachfolgende Befehle verwenden Klartext ohne erneute Überprüfung.
    • Expliziter sicherer Modus (DATABRICKS_AUTH_STORAGE=secure oder auth_storage = secure im Konfigurationsprofil): Die Databricks CLI gibt einen Fehler zurück, der auf den DATABRICKS_AUTH_STORAGE=plaintext Fallback zeigt.

    Wenn bei der Prüfung eine Zeitüberschreitung auftritt, anstatt dass sie sofort fehlschlägt (z. B. wenn der Schlüsselbund gesperrt, aber erreichbar ist), behält die Databricks CLI das Keychain-Backend bei, und die Entsperraufforderung des Betriebssystems wird parallel zum OAuth-Ablauf im Browser ausgeführt.

    Um zu bestätigen, welcher Speichermodus die Databricks CLI nach der Anmeldung verwendet, führen Sie aus databricks auth describe.

  • Der Schlüsselbund kann beim Lesen eines gespeicherten Tokens nicht erreicht werden. Anders als bei der Anmeldung fällt die Databricks CLI nicht stillschweigend zurück, wenn sie beim Lesen des Tokens nicht auf den Schlüsselbund zugreifen kann. Wenn Sie sich beispielsweise an einem Desktop-Rechner angemeldet haben und sich anschließend per SSH in einer Headless-Sitzung verbunden haben, schlagen Befehle, die das gespeicherte Token benötigen, mit einer Fehlermeldung fehl. Verwenden Sie den Klartext-Fallback, um dies zu beheben. Siehe Verwendung des Klartext-Fallbacks.

Befehle werden nicht beendet

Wenn Sie einen Befehl wie databricks cluster list ausführen und er scheint hängen zu bleiben, aktualisieren Sie Ihre Version der Databricks CLI auf die neueste Version. Frühere Versionen der CLI würden versuchen, vollständige Listen zu laden, auch wenn die Anzahl der Elemente in der Liste groß war, und der Befehl scheint nicht fertig zu sein.