問題
您的筆記本或作業中有長時間運行的MLflow任務,這些任務尚未完成。相反,它們返回一個(403)無效訪問令牌錯誤消息。
錯誤堆棧跟蹤:MlflowException: API請求到端點/ API /2.0/mlflow/runs/create失敗,錯誤代碼403 != 200。響應體:'
< >頭Error 403無效的訪問令牌
< / >頭HTTP ERROR 403
訪問/api/2.0/mlflow/runs/create有問題。原因:
無效的訪問令牌
身體< / >
< / html >
導致
MLflow Python客戶端用於與跟蹤服務器通信的Databricks訪問令牌將在幾個小時後過期。如果ML任務運行較長時間,則訪問令牌可能在任務完成之前過期。這將導致MLflow調用失敗(403)無效訪問令牌在筆記本和作業中都有錯誤消息。
解決方案
您可以通過手動創建具有延長生命周期的訪問令牌,然後在運行MLflow任務之前在筆記本中配置該訪問令牌來解決此問題。
- 生成個人訪問令牌(AWS|Azure),並將其配置為延長的生命周期。
- 設置Databricks命令行(AWS|Azure).
- 使用Databricks CLI使用剛才創建的個人訪問令牌創建一個新的秘密。
Databricks secrets put——scope {
}——key mlflow-access-token——string-value { } - 在筆記本的開頭插入這個示例代碼。包括您的秘密名稱和您的工作區URL (AWS|Azure).
%python access_token = dbutls .secrets。Get (scope="{
}", key="mlflow-access-token")導入OS操作係統。environ["DATABRICKS_TOKEN"] = access_token操作係統。environ["DATABRICKS_HOST"] = "https:// " from databricks_cli. environ["DATABRICKS_HOST"] = "https:// "。配置導入provider config_provider = provider. environmentvariableconfigprovider () provider.set_config_provider - 正常運行你的筆記本或工作。