Creación de un contenedor en Azure Cosmos DB for NoSQL con .NET

SE APLICA A: NoSQL

Los contenedores de Azure Cosmos DB almacenan conjuntos de elementos. Para poder crear, consultar o administrar elementos, primero debe crear un contenedor.

Asignación de un nombre para un contenedor

En Azure Cosmos DB, un contenedor es análogo a una tabla en una base de datos relacional. Al crear un contenedor, el nombre del contenedor forma un segmento del URI usado para acceder al recurso de contenedor y a los elementos secundarios.

Estas son algunas reglas rápidas de la asignación de un nombre a un contenedor:

  • Los nombres de contenedor no deben estar vacíos.
  • El nombre del servidor no puede contener más de 256 caracteres.

Una vez creado, el URI de un contenedor tiene este formato:

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

Sugerencia

Para más información sobre los límites de nombres de contenedor, consulte Límites y cuotas de servicio

Crear un contenedor

Para crear un contenedor, llame a uno de los métodos siguientes:

Creación de un contenedor de forma asincrónica

En el ejemplo siguiente se crea un contenedor de forma asincrónica:

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

El método Database.CreateContainerAsync emite una excepción si ya existe una base de datos con el mismo nombre.

Creación de un contenedor de forma asincrónica si no existe

En el ejemplo siguiente se crea un contenedor de forma asincrónica solo si aún no existe en la cuenta:

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

El método Database.CreateContainerIfNotExistsAsync solo crea un nuevo contenedor si no existe ya. Este método es útil para evitar errores si ejecuta el mismo código varias veces.

Análisis de la respuesta

En todos los ejemplos presentados hasta ahora, la respuesta de la solicitud asincrónica se convirtió inmediatamente al tipo Container. Es posible que quiera analizar los metadatos sobre la respuesta, incluidos los encabezados y el código de estado HTTP. El verdadero tipo de valor devuelto para los métodos Database.CreateContainerAsync y Database.CreateContainerIfNotExistsAsync es ContainerResponse.

En el ejemplo siguiente se muestra el método Database.CreateContainerIfNotExistsAsync que devuelve ContainerResponse. Una vez devuelto, puede analizar las propiedades de respuesta y, finalmente, obtener el objeto Contenedor subyacente:

// 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;

Pasos siguientes

Ahora que ha creado un contenedor, use la siguiente guía para crear elementos.