You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python在Databricks挂载S3存储桶及密钥不存在报错处理

Databricks挂载S3报Secret不存在问题排查与解决

排查步骤

  • 确认Secret Scope是否存在
    执行命令dbutils.secrets.listScopes()查看当前工作区所有可用的Secret Scope,检查返回结果中是否包含aws。如果不存在,需要先创建对应Scope,可通过Databricks工作区管理界面操作,或使用Databricks CLI执行databricks secrets create-scope --scope aws完成创建。
  • 确认Scope下的Secret Key是否匹配
    执行命令dbutils.secrets.list("aws")查看aws Scope下所有已配置的密钥名称,首先注意你现有代码中获取access_key和secret_key时使用的key均为my key,这是明显错误:AWS的访问密钥ID和私有访问密钥不可能对应同一个Secret Key值。同时报错信息提到不存在的key为my aws access key,说明你配置的access key对应的密钥名称大概率是my aws access key,而非你代码中填写的my key,需要将代码中的key参数替换为实际配置的正确名称。
  • 确认权限配置
    检查你当前使用的Databricks账号对aws Scope是否有读取权限,无读取权限时也会触发Secret不存在的报错。可联系工作区管理员在Secret Scope的权限配置页为你的账号授予READ权限。

修复后参考代码

# 替换为你实际配置的对应Secret Key名称
access_key = dbutils.secrets.get(scope = "aws", key = "my aws access key")
secret_key = dbutils.secrets.get(scope = "aws", key = "my aws secret key")
encoded_secret_key = secret_key.replace("/", "%2F")

aws_bucket_name = "bengali-ai"
mount_name = "bengali"
dbutils.fs.mount("s3a://%s:%s@%s" % (access_key, encoded_secret_key, aws_bucket_name), "/mnt/%s" % mount_name)

完成上述排查和代码修正后,重新执行挂载命令即可。

内容的提问来源于stack exchange,提问作者Pavle Tabandzelic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 01:30:01