Skapa en container i Azure Cosmos DB for NoSQL med Python

GÄLLER FÖR: NoSQL

Containrar i Azure Cosmos DB lagrar uppsättningar med objekt. Innan du kan skapa, fråga eller hantera objekt måste du först skapa en container.

Namnge en container

I Azure Cosmos DB motsvarar en container en tabell i en relationsdatabas. När du skapar en container utgör containernamnet ett segment av den URI som används för att komma åt containerresursen och eventuella underordnade objekt.

Här följer några snabba regler när du namnger en container:

  • Håll containernamnen mellan 3 och 63 tecken långa
  • Containernamn får bara innehålla gemener, siffror eller bindestreck (-).
  • Containernamn måste börja med en gemen eller siffra.

När URI:n för en container har skapats har den följande format:

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

Skapa en container

Om du vill skapa en container anropar du någon av följande metoder:

Skapa en container

I följande exempel skapas en container med DatabaseProxy.create_container metoden . Den här metoden genererar ett undantag om containern med samma namn redan finns.

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

Skapa en container om den inte redan finns

I följande exempel skapas en container med DatabaseProxy.create_container_if_not_exists metoden . Jämfört med den tidigare skapandemetoden utlöser den här metoden inte ett undantag om databasen redan finns. Den här metoden är användbar för att undvika fel om du kör samma kod flera gånger.

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

Skapa en container asynkront

Du kan också skapa en databas asynkront med liknande objekt och metoder i namnområdet azure.cosmos.aio . Använd till exempel metoden DatabaseProxy.create_database eller metoden CosmoClient.create_database_if_not_exists .

Att arbeta asynkront är användbart när du vill utföra flera åtgärder parallellt. Mer information finns i Använda den asynkrona klienten.

Parsa svaret

I exemplen ovan är svaret från begäranden ett ContainerProxy, som är ett gränssnitt för att interagera med en DB-container. Från proxyn kan du komma åt metoder för att utföra åtgärder på containern.

I följande exempel visas create_container_if_not_exists metod som returnerar ett containerobjekt .

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

Nästa steg

Nu när du har skapat en container använder du nästa guide för att skapa objekt.