1. ホーム
  2. amazon-web-services

[解決済み] boto3クライアントとboto3リソースはいつ使い分ける?

2023-02-08 01:09:25

質問

私は、どのような場合に リソース を使うべきか、そして クライアント .

boto3 docs で提供されている定義では、いつどちらを使うのが望ましいのかが明確ではありません。

どのように解決するのですか?

boto3.resource は、高レベルのサービスクラスで boto3.client .

これは、元のリソースIDを指定せずに、後で他のリソースを使用できるように、下に接続されたリソースを添付することを意味します。

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

その他、boto3.clientは低レベルで、エントリクラスのオブジェクトを持たないので、実行するアクションごとに接続するリソースを明示的に指定する必要があります。

それは個々のニーズに依存します。しかし boto3.resource をすべて包むわけではありません。 boto3.client の機能をすべて包むわけではないので、場合によっては boto3.client を呼び出したり、あるいは boto3.resource.meta.client を使ってください。