Agregue compatibilidad con Azure Cosmos DB a la aplicación mediante Servicios conectados de Visual Studio.

Con Visual Studio, puede conectar cualquiera de las siguientes opciones a Azure Cosmos DB mediante la característica Servicios conectados:

  • Aplicación de consola de .NET Framework
  • Model-View-Controller (Modelo-Vista-Controlador) ASP.NET (MVC) (Esquema de trabajo .NET)
  • ASP.NET Core
  • .NET Core (incluida la aplicación de consola, WPF, Windows Forms y la biblioteca de clases)
  • Rol de trabajo de .NET Core
  • Azure Functions
  • Aplicación de la Plataforma universal de Windows
  • Xamarin
  • Cordova

La funcionalidad del servicio conectado agrega todo el código de conexión y las referencias necesarios al proyecto y modifica los archivos de configuración de forma adecuada.

Nota

Este tema se aplica a Visual Studio para Windows. En Visual Studio para Mac, vea Servicios conectados en Visual Studio para Mac.

Requisitos previos

Conexión con Azure Cosmos DB mediante Servicios conectados

  1. Abra el proyecto en Visual Studio.

  2. En el Explorador de soluciones, haga clic con el botón derecho en el nodo Servicios conectados y, en el menú contextual, seleccione Agregar servicio conectado.

  3. En la pestaña Servicios conectados, seleccione el icono + de Dependencias de servicio.

    Screenshot showing how to add a service dependency.

  4. En la página Agregar dependencia, seleccione Azure Cosmos DB.

    Screenshot showing

    Si aún no ha iniciado sesión en su cuenta de Azure, hágalo ahora. Si no tiene una cuenta de Azure, puede registrarse para obtener una evaluación gratuita.

  5. En la pantalla de Azure Cosmos DB, seleccione una instancia de Azure Cosmos DB existente y seleccione Siguiente.

    Si necesita crear una base de datos, vaya al siguiente paso. De lo contrario, vaya al paso 7.

    Screenshot showing how to add an existing Azure Cosmos DB to project.

  6. Para crear una instancia de Azure Cosmos DB:

    1. Seleccione Crear una nueva instancia de Azure Cosmos DB en la parte inferior de la pantalla.

    2. Rellene la pantalla Azure Cosmos DB: Crear nueva y seleccione Crear.

      Screenshot showing

    3. Cuando se muestra el cuadro de diálogo Configurar instancia de Azure Cosmos DB, la nueva base de datos aparece en la lista. Seleccione la nueva base de datos de la lista y seleccione Siguiente.

  7. Escriba un nombre de cadena de conexión y elija si desea que la cadena de conexión se almacene en un archivo de secretos local o en Azure Key Vault.

    Screenshot showing

  8. En la pantalla Resumen de cambios se muestran todas las modificaciones que se realizarán en el proyecto si completa el proceso. Si los cambios parecen correctos, seleccione Finalizar.

    Screenshot showing

  9. La conexión aparece en la sección Dependencias de servicio de la pestaña Servicios conectados.

    Screenshot showing

Nota:

Para los proyectos de .NET Framework, la interfaz de usuario de Servicios conectados es ligeramente diferente. Para ver las diferencias, compare esta información con la versión de esta página para Visual Studio 2019.

  1. Abra el proyecto en Visual Studio.

  2. En el Explorador de soluciones, haga clic con el botón derecho en el nodo Servicios conectados y, en el menú contextual, seleccione Agregar para abrir el menú de servicios disponibles.

    Screenshot showing Connected Services context menu options.

  3. Elija Azure Cosmos DB. Aparece la página Conectarse a la dependencia. Debería ver dos opciones, una para un emulador local, el emulador de Azure Cosmos DB en el contenedor (local) y otra para conectarse al servicio Azure Cosmos DB activo. Si empieza por el emulador local, puede reducir el costo y simplificar los primeros pasos del desarrollo. Si desea migrar al servicio en directo más adelante, repita estos pasos y seleccione la otra opción.

    Screenshot showing Azure Cosmos DB choices.

    Si decide usar el emulador de Azure Cosmos DB localmente, haga clic en Siguiente para ver la pantalla Resumen de cambios, que muestra cómo se está modificando el proyecto. Se agrega una referencia de paquete NuGet al proyecto y se agrega el código de conexión del emulador local al proyecto. Al hacer clic en Finalizar en la última pantalla, se crea el contenedor del emulador y se ve el estado de descarga de la imagen en la ventana de salida.

    Si quiere conectarse al servicio de Azure, siga con el paso siguiente o, si aún no ha iniciado sesión, acceda a su cuenta de Azure antes de continuar. Si no tiene una cuenta de Azure, puede registrarse para obtener una evaluación gratuita.

  4. En la pantalla de Azure Cosmos DB, seleccione una instancia de Azure Cosmos DB existente y seleccione Siguiente.

    Si necesita crear una base de datos, vaya al siguiente paso. De lo contrario, vaya al paso 7.

    Screenshot showing

  5. Para crear una instancia de Azure Cosmos DB:

    1. Seleccione Crear una nueva instancia de Azure Cosmos DB en la parte inferior de la pantalla.

    2. Rellene la pantalla Azure Cosmos DB: Crear nueva y seleccione Crear.

      Screenshot showing

    3. Cuando se muestra el cuadro de diálogo Configurar instancia de Azure Cosmos DB, la nueva base de datos aparece en la lista. Seleccione la nueva base de datos de la lista y seleccione Siguiente.

  6. Escriba un nombre de cadena de conexión y elija si desea que la cadena de conexión se almacene en un archivo de secretos local o en Azure Key Vault.

    Screenshot showing

    La cadena de conexión se agrega como un secreto y está disponible en la configuración de la aplicación. En las aplicaciones de ASP.NET Core, puede acceder a esta cadena de conexión usando la propiedad Configuration del objeto WebApplicationBuild.

  7. En la pantalla Resumen de cambios se muestran todas las modificaciones que se realizarán en el proyecto si completa el proceso. Si los cambios parecen correctos, seleccione Finalizar.

    Screenshot showing

  8. En Explorador de soluciones, haga doble clic en el nodo Servicios conectados para abrir la pestaña Servicios conectados. La conexión aparece en la sección Dependencias del servicio:

    Screenshot showing

    Si hace clic en los tres puntos que hay junto a la dependencia que agregó, puede ver varias opciones, como Conectar para volver a abrir el asistente y cambiar la conexión. También puede hacer clic en los tres puntos situados en la parte superior derecha de la ventana para ver las opciones para iniciar dependencias locales, cambiar la configuración, etc.

  9. De forma predeterminada, el límite de memoria del contenedor es de 2 G, pero normalmente se necesita más memoria para ejecutar Azure Cosmos DB. Para corregirlo, vaya a la carpeta .vs/sd/<GUID>/local en la carpeta de la solución. En el Explorador de Windows, es posible que tenga que habilitar los archivos ocultos para ver la carpeta .vs. Busque y abra el archivo cosmosdb1.docker-compose.yml. Establezca un límite de memoria de 4 G o superior.

    mem_limit = 4G
    

    Para reiniciar el contenedor con la nueva configuración, en la sección Dependencias de servicio de la pestaña Servicios conectados, haga clic en los tres puntos y elija Iniciar dependencias locales.

Nota:

El emulador local de Azure Cosmos DB podría hacer referencia a una imagen base que usa una licencia temporal de Azure Cosmos DB. Si el contenedor no se inicia, consulte la pestaña Registros en la ventana Contenedores* del contenedor de Azure Cosmos DB. Si menciona un problema de expiración de PAL, debe obtener la imagen base más reciente para el contenedor local. En el símbolo del sistema de la consola, ejecute el comando siguiente: docker pull mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest. La licencia se actualiza periódicamente y, cuando expira, la actualización al contenedor más reciente debe resolver el problema. Puede ver y notificar problemas del emulador de Azure Cosmos DB en el repositorio de GitHub del emulador de Azure Cosmos DB.

Pasos siguientes

Aprenda a almacenar secretos de forma segura como se indica en Almacenamiento seguro de secretos de aplicaciones en desarrollo en ASP.NET Core. En concreto, para leer la cadena de conexión del almacén de secretos, puede agregar código como se indica en Lectura del secreto mediante la API de configuración. El código puede tener el siguiente aspecto, donde builder es una instancia de WebApplicationBuild que aparece en Program.cs en las plantillas de proyecto de ASP.NET Core:

// New instance of CosmosClient class using a connection string
using CosmosClient client = new(
    connectionString: builder.Configuration["CosmosDBConnectionString"]
);

El CosmosClient da acceso a la funcionalidad de Azure Cosmos DB a través de diversos métodos. Una vez que tiene una instancia de CosmosClient, puede crear una base de datos NoSQL siguiendo esta guía: Creación de una base de datos en Azure Cosmos DB for NoSQL mediante .NET.