Boto3 Mavens、
クライアントとリソースの機能的な違いはありますか?
機能的に同等ですか?
Boto3リソースとクライアント(およびその逆)を呼び出す条件は何ですか?
私はRTMによってこの質問に答えようと努力しましたが...後悔していますが、この2つの機能の違いを理解することは私を避けます。
あなたの考え?
多く、多くありがとう!
Plane Wryter
リソースは、クライアントに対するリソースベースの抽象化にすぎません。クライアントができないことは何もできませんが、多くの場合、使いやすいです。実際には、要求を行うために使用する組み込みクライアントがあります。欠点は、サービスの機能のすべてを常にサポートしているわけではないことです。
常にresource
を作成します。 Table
などの必要な重要なメソッドがあります。 client
オブジェクトが必要になった場合、すぐに使用できるので、.meta.client
:
import boto3
dynamodb = boto3.resource(service_name='dynamodb', endpoint_url='http://localhost:8000')
try:
dynamodb.create_table(...)
except dynamodb.meta.client.exceptions.ResourceInUseException:
logging.warn('Table already exists')
table = dynamodb.Table(table_name)
response = table.get_item(...)