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.
Requisitos previos
- Visual Studio con la carga de trabajo de Azure instalada
- Un proyecto de uno de los tipos admitidos
- Una cuenta de Azure. Si no tiene una cuenta de Azure, active las Ventajas de Azure para suscriptores de Visual Studio o regístrese para obtener una evaluación gratuita.
Conexión con Azure Cosmos DB mediante Servicios conectados
Abra el proyecto en Visual Studio.
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.
Si no ve el nodo Servicios conectados, elija Proyecto>Servicios conectados>Agregar.
En la pestaña Servicios conectados, seleccione el icono + de Dependencias de servicio.
En la página Agregar dependencia, seleccione Azure Cosmos DB.
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.
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.
Para crear una instancia de Azure Cosmos DB:
Seleccione Crear una nueva instancia de Azure Cosmos DB en la parte inferior de la pantalla.
Rellene la pantalla Azure Cosmos DB: Crear nueva y seleccione Crear.
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.
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.
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.
La conexión aparece en la sección Dependencias de servicio de la pestaña Servicios conectados.
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.
Abra el proyecto en Visual Studio.
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.
Si no ve el nodo Servicios conectados, elija Proyecto>Servicios conectados>Agregar.
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.
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.
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.
Para crear una instancia de Azure Cosmos DB:
Seleccione Crear una nueva instancia de Azure Cosmos DB en la parte inferior de la pantalla.
Rellene la pantalla Azure Cosmos DB: Crear nueva y seleccione Crear.
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.
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.
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 objetoWebApplicationBuild
.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.
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:
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.
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.