Когда использовать клиент boto3 и когда использовать ресурс boto3?
Я пытаюсь понять, когда я должен использовать Ресурс и когда я должен использовать Клиент.
Определения, приведенные в документах boto3, на самом деле не дают ясности, когда предпочтительнее использовать тот или иной.
Ответ 1
boto3.resources - это класс класса обслуживания высокого уровня вокруг boto3.client.
Это средство для подключения подключенных ресурсов, где вы можете позже использовать другие ресурсы без указания исходного идентификатора ресурса.
import boto3
s3 = boto3.resource("s3")
bucket = s3.Bucket('mybucket')
# now bucket is "attached" the S3 bucket name "mybucket"
print(bucket)
# s3.Bucket(name='mybucket')
print(dir(bucket))
#show you all class method action you may perform
OTH, boto3.client - низкий уровень, у вас нет "объекта класса входа", поэтому вы должны явно указать точные ресурсы, к которым он подключается, для каждого действия, которое вы выполняете.
Это зависит от индивидуальных потребностей. Однако boto3.resources не обертывает все функции boto3.client, поэтому иногда вам нужно вызвать boto3.client или использовать boto3.resource.meta.client(), чтобы выполнить эту работу.