Sdílet prostřednictvím


Vytvoření kontejneru ve službě Azure Cosmos DB for NoSQL pomocí Pythonu

PLATÍ PRO: NoSQL

Kontejnery ve službě Azure Cosmos DB ukládají sady položek. Než budete moct vytvářet, dotazovat nebo spravovat položky, musíte nejprve vytvořit kontejner.

Pojmenování kontejneru

Ve službě Azure Cosmos DB je kontejner podobný tabulce v relační databázi. Při vytváření kontejneru tvoří název kontejneru segment identifikátoru URI sloužícího pro přístup k prostředku kontejneru a všechny podřízené položky.

Po vytvoření je identifikátor URI kontejneru v tomto formátu:

https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>/colls/<container-name>

Vytvoření kontejneru

Pokud chcete vytvořit kontejner, zavolejte jednu z následujících metod:

Vytvoření kontejneru

Následující příklad vytvoří kontejner s metodou DatabaseProxy.create_container . Tato metoda vyvolá výjimku, pokud kontejner se stejným názvem již existuje.

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.")

Vytvoření kontejneru, pokud ještě neexistuje

Následující příklad vytvoří kontejner s metodou DatabaseProxy.create_container_if_not_exists . V porovnání s předchozí metodou vytvoření tato metoda nevyvolá výjimku, pokud databáze již existuje. Tato metoda je užitečná, pokud několikrát spustíte stejný kód, abyste se vyhnuli chybám.

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.")

Asynchronní vytvoření kontejneru

Databázi můžete také asynchronně vytvořit pomocí podobných objektů a metod v oboru názvů azure.cosmos.aio . Použijte například metodu DatabaseProxy.create_database nebo metodu CosmoClient.create_database_if_not_exists .

Asynchronní práce je užitečná, když chcete paralelně provádět více operací. Další informace naleznete v tématu Použití asynchronního klienta.

Analýza odpovědi

V příkladech výše je odpověď z požadavků rozhraní ContainerProxypro interakci s kontejnerem databáze. Z proxy serveru můžete přistupovat k metodám pro provádění operací v kontejneru.

Následující příklad ukazuje create_container_if_not_exists metoda vracející objekt kontejneru.

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"]}')

Další kroky

Teď, když vytvoříte kontejner, použijte dalšího průvodce k vytvoření položek.