's3.ServiceResource' не имеет атрибута 'get_object', когда я пытаюсь получить данные внутри json-файлов в S3 Bucket
Я начинающий пользователь AWS lambda. Как и с AWS в целом. Я пытаюсь сделать извлечение 20 ".json" из ведра S3. Поэтому я сделал следующее в лямбда-функции AmazonS3:
import json
import boto3
s3 = boto3.resource('s3')
def lambda_handler(event, context):
bucket_name = 'jom-data'
prefix = "reviews/ch/tmall"
keys = []
# list of 100 keys
d = {}
i = 0
bucket = s3.Bucket(bucket_name)
for object_summary in bucket.objects.filter(Prefix=prefix):
key = object_summary.key
print("key: ", key)
if key.endswith(".json"):
response = s3.get_object(Bucket=bucket, Key=key)
print("response: ", response)
content = response['Body']
print("content: ", content)
jsonObject = json.loads(content.read())
d[i]["name"] = jsonObject["name"]
d[i]["chinese_name"] = jsonObject["chinese_name"]
d[i]["reviews"] = jsonObject["reviews"]
print(jsonObject["name"])
i += 1
if i>=20:
return d
Но она возвращается:
Test Event Name
TestEvent
Response
{
"errorMessage": "'s3.ServiceResource' object has no attribute 'get_object'",
"errorType": "AttributeError",
"requestId": "699121cb-8038-42a8-9fc2-2596fc87bf94",
"stackTrace": [
" File \"/var/task/lambda_function.py\", line 18, in lambda_handler\n response = s3.get_object(Bucket=bucket, Key=key)\n"
]
}
Function Logs
START RequestId: 699121cb-8038-42a8-9fc2-2596fc87bf94 Version: $LATEST
key: reviews/ch/tmall/
key: reviews/ch/tmall/018883e290636d782895.json
[ERROR] AttributeError: 's3.ServiceResource' object has no attribute 'get_object'
Traceback (most recent call last):
File "/var/task/lambda_function.py", line 18, in lambda_handler
response = s3.get_object(Bucket=bucket, Key=key)END RequestId: 699121cb-8038-42a8-9fc2-2596fc87bf94
REPORT RequestId: 699121cb-8038-42a8-9fc2-2596fc87bf94 Duration: 486.99 ms Billed Duration: 487 ms Memory Size: 128 MB Max Memory Used: 70 MB Init Duration: 346.63 ms
Request ID
699121cb-8038-42a8-9fc2-2596fc87bf94