Azure Cosmos DB のデータベースは、1 つ以上のコンテナーの管理単位です。 コンテナーを作成または管理するには、まずデータベースを作成する必要があります。
データベースに名前を付ける
Azure Cosmos DB では、データベースは名前空間に似ています。 データベースを作成すると、データベース名は、データベース リソースと子リソースへのアクセスに使用される URI のセグメントを形成します。
作成されると、データベースの URI は次の形式になります。
https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>
データベースの作成
データベースを作成するには、次のいずれかのメソッドを呼び出します。
データベースの作成
次の例では、 CosmosClient.create_database メソッドを使用してデータベースを作成します。 同じ名前のデータベースが存在する場合、このメソッドは例外をスローします。
try:
database = client.create_database(id=DATABASE_ID)
print(f"Database created: {database.id}")
except CosmosResourceExistsError:
print("Database already exists.")
データベースがまだ存在しない場合は作成する
次の例では、 CosmosClient.create_database_if_not_exists メソッドを使用してデータベースを作成します。 データベースが存在する場合、このメソッドはデータベース設定を返します。 前の create メソッドと比較して、データベースが既に存在する場合、このメソッドは例外をスローしません。 このメソッドは、同じコードを複数回実行する場合にエラーを回避するのに役立ちます。
try:
database = client.create_database_if_not_exists(id=DATABASE_ID)
print(f"Database created or returned: {database.id}")
except CosmosHttpResponseError:
print("Request to the Azure Cosmos database service failed.")
データベースを非同期的に作成する
azure.cosmos.aio 名前空間で同様のオブジェクトとメソッドを使用して、データベースを非同期的に作成することもできます。 たとえば、 CosmosClient.create_database メソッドまたは CosmosClient.create_database_if_not_exists メソッドを使用します。
非同期操作は、複数の操作を並列で実行する場合に便利です。 詳細については、「非同期クライアントの使用を参照してください。
応答の解析
上記の例では、要求からの応答は DatabaseProxyであり、これは特定のデータベースと対話するためのインターフェイスです。 プロキシから、メソッドにアクセスしてデータベースに対する操作を実行できます。
次の例は、データベース オブジェクトを返すcreate_database_if_not_existsメソッドを示しています。
database = client.create_database_if_not_exists(id=DATABASE_ID)
for container in database.list_containers():
print(f'Container name: {container["id"]}')
次のステップ
データベースを作成したので、次のガイドを使用してコンテナーを作成します。