Criar um contêiner no Azure Cosmos DB for NoSQL usando o .NET

APLICA-SE A: NoSQL

Contêineres nos conjuntos de armazenamento de itens do Azure Cosmos DB. Antes de poder criar, consultar ou gerenciar itens, você deve criar um contêiner.

Nomear um contêiner

No Azure Cosmos DB, um contêiner é análogo a uma tabela em um banco de dados relacional. Quando você cria um contêiner, o nome do contêiner forma um segmento do URI usado para acessar o recurso de contêiner e todos os itens filho.

Aqui estão algumas regras rápidas ao nomear um contêiner:

  • Os nomes dos contêineres não devem estar vazios.
  • Os nomes dos contêineres não podem ter mais de 256 caracteres.

Após criado, o URI para um contêiner ficará neste formato:

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

Dica

Para obter mais informações sobre limites de nome de contêiner, veja cotas e limites de serviço

Criar um contêiner

Para criar um contêiner, chame um dos seguintes métodos:

Criar um contêiner de maneira assíncrona

O seguinte exemplo cria um contêiner de maneira assíncrona:

// New instance of Container class referencing the server-side container
Container container1 = await database.CreateContainerAsync(
    id: "products-1",
    partitionKeyPath: "/category",
    throughput: 400
);

O método Database.CreateContainerAsync lança uma exceção se já existir um banco de dados com o mesmo nome.

Criar um contêiner assíncrono se ele não existir

O exemplo a seguir cria um contêiner de maneira assíncrona somente se ele ainda não existir na conta:

// New instance of Container class referencing the server-side container
Container container2 = await database.CreateContainerIfNotExistsAsync(
    id: "products-2",
    partitionKeyPath: "/category",
    throughput: 400
);

O método Database.CreateContainerIfNotExistsAsync só cria um novo contêiner se ele ainda não existir. Esse método é útil para evitar erros se você executar o mesmo código várias vezes.

Análise da resposta

Em todos os exemplos até agora, a resposta da solicitação assíncrona foi lançada imediatamente para o tipo Container. Talvez você queira analisar metadados sobre a resposta, incluindo cabeçalhos e o código de status HTTP. O verdadeiro tipo de retorno para os métodos Database.CreateContainerAsync e Database.CreateContainerIfNotExistsAsync é ContainerResponse.

O exemplo a seguir mostra o método Database.CreateContainerIfNotExistsAsync retornando um ContainerResponse. Depois de retornado, você pode analisar as propriedades de resposta e, assim, obter o objeto Contêiner subjacente:

// New instance of Container class referencing the server-side container
ContainerResponse response = await database.CreateContainerIfNotExistsAsync(
    id: "products-3",
    partitionKeyPath: "/category",
    throughput: 400
);
// Parse additional response properties
Container container3 = response.Container;

Próximas etapas

Agora que você criou um contêiner, use o próximo guia para criar itens.