S3 Express One Zone目录型桶遇NoSuchBucket错误排查
问题:S3 Express One Zone目录型桶在Lambda中访问提示NoSuchBucket
我在S3 Express One Zone中创建了一个目录型桶,尝试通过位于同一us-east-1区域的AWS Lambda函数获取桶内对象。我的函数基于官方文档示例编写:
import boto3 import json def get_object(s3_client, bucket_name, key_name): try: response = s3_client.get_object(Bucket=bucket_name, Key=key_name) body = response['Body'].read() print(f"Got object '{key_name}' from bucket '{bucket_name}'.") return body except: print(f"Couldn't get object '{key_name}' from bucket '{bucket_name}'.") raise def lambda_handler(event, context): s3_client = boto3.client('s3') resp = get_object(s3_client, 'mybucket--use1-az4--x-s3', 'myobject') return {'statusCode': 200}
调用get_object时触发异常:
An error occurred (NoSuchBucket) when calling the GetObject operation: The specified bucket does not exist.
使用常规(非目录型)桶时可正常运行,因此排除权限问题。我曾怀疑是使用的boto3版本不支持该新型桶,于是重新创建了Python 3.10环境的Lambda函数,但问题依旧。我忽略了什么?
更新:添加包含最新boto3的层后,问题已解决。
内容的提问来源于stack exchange,提问作者AlwaysLearning
相关产品推荐
相关产品推荐

