该错误通常是由于AWS Sagemaker笔记本无法正确识别相应的凭证而导致的。解决此问题的方法是将IAM角色与笔记本实例进行关联,从而为笔记本提供相应的权限。以下是代码示例:
import boto3
import sagemaker
# 创建Sagemaker会话
sagemaker_session = sagemaker.Session()
# 获取IAM角色的名称
role = sagemaker.get_execution_role()
# 打印IAM角色的ARN
print(role)
# 配置S3存储桶的名称和路径
bucket = "my-bucket"
prefix = "sagemaker"
# 创建S3客户端
s3 = boto3.resource("s3")
# 创建S3存储桶
try:
if sagemaker_session.boto_region_name == "us-east-1":
s3.create_bucket(Bucket=bucket)
else:
loc = f"us-west-2"
s3.create_bucket(Bucket=bucket, CreateBucketConfiguration={"LocationConstraint": loc})
print("S3存储桶创建成功!")
except Exception as e:
print("S3存储桶创建失败:\n", e)