Información general sobre el desencadenador y los enlaces de Azure Cosmos DB para Azure Functions 2.x y versiones superiores
En este conjunto de artículos se explica cómo trabajar con enlaces de Azure Cosmos DB en Azure Functions 2.x y versiones superiores. Azure Functions enlaces de desencadenador, de entrada y de salida para Azure Cosmos DB.
Acción | Tipo |
---|---|
Ejecución de una función cuando se crea o modifica un documento de Azure Cosmos DB | Desencadenador |
Lectura de un documento de Azure Cosmos DB | Enlace de entrada |
Guardar cambios en un documento de Azure Cosmos DB | Enlace de salida |
Nota
Esta referencia va dirigida a Azure Functions, versión 2.x y superiores. Para obtener información acerca del uso de estos enlaces en Functions 1.x, consulte Enlaces de Azure Cosmos DB para Azure Functions 1.x.
Este enlace se llamaba originalmente DocumentDB. En Azure Functions, versión 2.x y posteriores, tanto el desencadenador, como los enlaces y el paquete se denominan Azure Cosmos DB.
API admitidas
Solo se admiten enlaces de Azure Cosmos DB para su uso con Azure Cosmos DB for NoSQL. La compatibilidad con Azure Cosmos DB for Table se proporciona mediante los enlaces de almacenamiento de Table, empezando por la extensión 5.x. Para el resto de API de Azure Cosmos DB, debe acceder a la base de datos desde la función mediante el cliente estático de la API, por ejemplo Azure Cosmos DB for MongoDB, Azure Cosmos DB for Cassandra y Azure Cosmos DB for Apache Gremlin.
Instalación de la extensión
El paquete NuGet de la extensión que instale depende del modo de C# que esté usando en la aplicación de funciones:
Las funciones se ejecutan en el mismo proceso que el host de Functions. Para más información, consulte Desarrollo de funciones de la biblioteca de clases de C# con Azure Functions.
El proceso para instalar la extensión varía en función de la versión de la extensión:
Para trabajar con el desencadenador y los enlaces, es necesario hacer referencia al paquete NuGet adecuado. Instale el paquete NuGet, versión 3.x.
Instalación del conjunto
La extensión de enlaces de Azure Cosmos DB forma parte de un conjunto de extensiones que se especifica en el archivo de proyecto host.json. Es posible que tenga que modificar este conjunto para cambiar la versión de los enlaces o en caso de que los conjuntos aún no estén instalados. Para obtener más información, consulte Conjuntos de extensiones.
Puede instalar esta versión de la extensión en la aplicación de funciones; para ello, debe registrar el conjunto de extensiones, versión 2.x o 3.x.
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[3.3.0, 4.0.0)"
}
}
Debido a los cambios de esquema en el SDK de Azure Cosmos DB, la versión 4.x de la extensión Azure Cosmos DB requiere azure-functions-java-library V3.0.0 para las funciones de Java.
Agregue o reemplace el código siguiente en el archivo host.json
para agregar esta versión de la extensión desde el conjunto de extensiones de versión preliminar v4:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
"version": "[4.0.0, 5.0.0)"
}
}
Para obtener más información, consulte Actualización de las extensiones.
Tipos de enlaces
Los tipos de enlace admitidos para .NET dependen de la versión de extensión y del modo de ejecución de C#, que puede ser uno de los siguientes:
Un biblioteca de clases en proceso es una función de C# compilada que se ejecuta en el mismo proceso que Functions Runtime.
Seleccione una versión para ver los detalles del tipo de enlace para el modo y la versión.
Las versiones anteriores de la extensión exponen tipos del espacio de nombres Microsoft.Azure.Storage.Documents ahora en desuso. Los tipos más recientes de Microsoft.Azure.Cosmos son exclusivos de la extensión 4.x y versiones posteriores.
Excepciones y códigos de retorno
Enlace | Referencia |
---|---|
Azure Cosmos DB | Códigos de Estado HTTP en Azure Cosmos DB |
configuración de host.json
En esta sección se describen las opciones de configuración disponibles para este enlace en las versiones 2.x y posteriores. La configuración del archivo host.json se aplica a todas las funciones de una instancia de la aplicación de funciones. El siguiente archivo host.json de ejemplo contiene solo la configuración de la versión 2.x+ para este enlace. Para obtener más información sobre la configuración de la aplicación de funciones en las versiones 2.x y posteriores, consulte la referencia de host.json para Azure Functions.
{
"version": "2.0",
"extensions": {
"cosmosDB": {
"connectionMode": "Gateway",
"protocol": "Https",
"leaseOptions": {
"leasePrefix": "prefix1"
}
}
}
}
Propiedad | Valor predeterminado | Descripción |
---|---|---|
connectionMode | Gateway |
Modo de conexión que usa la función al conectarse al servicio de Azure Cosmos DB. Las opciones son Direct y Gateway |
protocolo | Https |
Protocolo de conexión que usa la función al conectarse al servicio de Azure Cosmos DB. Lea este documento para obtener una explicación de los dos modos. |
leasePrefix | N/D | Prefijo de concesión que se usará en todas las funciones de una aplicación. |