如何用Boto3导出DynamoDB表?Lambda执行遇属性错误
解决DynamoDB导出到S3时的AttributeError错误
出现'dynamodb.ServiceResource' object has no attribute 'export_table_to_point_in_time'错误的核心原因:你使用了boto3的**资源(Resource)对象调用了仅属于客户端(Client)**的API方法。export_table_to_point_in_time是DynamoDB客户端专属的操作,无法通过资源类对象调用。
修正后的代码
import boto3 import datetime def lambda_handler(event, context): # 替换为boto3.client创建DynamoDB客户端实例 client = boto3.client('dynamodb', endpoint_url="http://localhost:8000") response = client.export_table_to_point_in_time( TableArn='你的表ARN字符串', # 注意调用datetime模块下的datetime类(原代码少了一层调用) ExportTime=datetime.datetime(2015, 1, 1), S3Bucket='my-bucket', # 若无需指定桶所有者可删除此参数,需保留则填写正确的AWS账号ID S3BucketOwner='你的AWS账号ID', ExportFormat='DYNAMODB_JSON' ) print("响应 :", response)
额外注意事项
- 确保Lambda执行角色拥有
dynamodb:ExportTableToPointInTime权限,以及向目标S3桶写入的权限 - 你的Boto3版本1.24.82已支持该API,版本无需升级
- 若在AWS云端运行Lambda,无需指定
endpoint_url,会自动使用当前区域的默认端点
内容的提问来源于stack exchange,提问作者Hkachhia
相关产品推荐
相关产品推荐

