Python を使用して Azure Cosmos DB for NoSQL にコンテナーを作成する
適用対象: NoSQL
Azure Cosmos DB のコンテナーは、項目のセットを格納します。 アイテムを作成、クエリ、または管理するには、まずコンテナーを作成する必要があります。
コンテナーの名前を指定する
Azure Cosmos DB では、コンテナーはリレーショナル データベース内のテーブルに似ています。 コンテナーを作成すると、コンテナー名によって、コンテナー リソースと子項目へのアクセスに使用される URI のセグメントが形成されます。
作成されると、コンテナーの URI の形式は次のとおりです。
https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>/colls/<container-name>
コンテナーを作成する
コンテナーを作成するには、次のいずれかのメソッドを呼び出します。
コンテナーを作成する
次の例では、DatabaseProxy.create_container
メソッドを使用してコンテナーが作成されます。 同じ名前のコンテナーが既に存在する場合、このメソッドは例外をスローします。
try:
partition_key_path = PartitionKey(path="/categoryId")
container = database.create_container(
id=CONTAINER_ID,
partition_key=partition_key_path,
offer_throughput=400,
)
print(f"Container created: {container.id}")
except CosmosResourceExistsError:
print("Container already exists.")
コンテナーがまだ存在しない場合は作成する
次の例では、DatabaseProxy.create_container_if_not_exists
メソッドを使用してコンテナーが作成されます。 前の create メソッドと比較すると、データベースが既に存在しても、このメソッドは例外をスローしません。 このメソッドは、同じコードを複数回実行する場合にエラーを回避するのに役立ちます。
try:
partition_key_path = PartitionKey(path="/categoryId")
container = database.create_container_if_not_exists(
id=CONTAINER_ID,
partition_key=partition_key_path,
offer_throughput=400,
)
print(f"Container created or returned: {container.id}")
except CosmosHttpResponseError:
print("Request to the Azure Cosmos database service failed.")
コンテナーを非同期的に作成する
azure.cosmos.aio 名前空間で同様のオブジェクトとメソッドを使用して、非同期的にデータベースを作成することもできます。 たとえば、DatabaseProxy.create_database メソッドや CosmoClient.create_database_if_not_exists メソッドを使用します。
非同期的に動作させると、複数の操作を並列で実行するときに便利です。 詳細については、「非同期クライアントの使用」を参照してください。
応答の解析
上記の例では、要求の応答は ContainerProxy
です。これは、DB コンテナーと対話するためのインターフェイスです。 プロキシからメソッドにアクセスして、コンテナーに対する操作を実行できます。
次の例は、container オブジェクトを返す create_container_if_not_exists メソッドを示しています。
partition_key_path = PartitionKey(path="/categoryId")
container = database.create_container_if_not_exists(
id=CONTAINER_ID,
partition_key=partition_key_path,
offer_throughput=400,
)
for doc in container.read_all_items(max_item_count=10):
print(f'Doc id: {doc["id"]}')
次のステップ
コンテナーを作成したので、次のガイドを使用し項目を作成します。