Acceso, creación o procesamiento de documentos en Azure Cosmos DB desde flujos de trabajo en Azure Logic Apps

Se aplica a: Azure Logic Apps (consumo + estándar)

Desde un flujo de trabajo de Azure Logic Apps, puede conectarse a Azure Cosmos DB y trabajar con documentos mediante el conector de Azure Cosmos DB . Por ejemplo, puede usar operaciones de conector para crear, actualizar, leer, consultar o eliminar documentos.

Puede conectarse a Azure Cosmos DB desde flujos de trabajo de aplicaciones lógicas de consumo y estándar mediante las operaciones del conector administrado, que se hospedan, administran y ejecutan en Azure global y multiinquilino. En el caso de los flujos de trabajo estándar, Azure Cosmos DB también proporciona operaciones integradas que se ejecutan junto con el entorno de ejecución para Azure Logic Apps de un solo inquilino. Las operaciones integradas ofrecen un mejor rendimiento, un mayor rendimiento y, a veces, una funcionalidad diferente. Por ejemplo, en un flujo de trabajo Estándar, puede usar el desencadenador integrado para supervisar un contenedor de Azure Cosmos DB para elementos nuevos o actualizados. Puede combinar operaciones de Azure Cosmos DB con otros usuarios de un flujo de trabajo para admitir escenarios como el aprovisionamiento de eventos y el procesamiento general de datos.

Limitaciones

  • Actualmente, solo los flujos de trabajo con estado de un flujo de trabajo Estándar pueden usar tanto las operaciones del conector administrado como las operaciones integradas. Los flujos de trabajo sin estado solo pueden usar las operaciones integradas.

  • El conector de Azure Cosmos DB solo admite cuentas de Azure Cosmos DB creadas con la Azure Cosmos DB for NoSQL.

Requisitos previos

  • Una cuenta y una suscripción de Azure. Obtenga una cuenta gratuita de Azure.

  • Una cuenta de Azure Cosmos DB.

  • Flujo de trabajo de aplicación lógica desde donde desea acceder a una cuenta de Azure Cosmos DB. Para usar el desencadenador integrado de Azure Cosmos DB, debe empezar con un flujo de trabajo en blanco.

Referencia técnica del conector

Adición de un desencadenador de Azure Cosmos DB

En Azure Logic Apps, cada flujo de trabajo debe comenzar con un desencadenador, que se activa cuando se produce un evento específico o cuando se cumple una condición determinada.

Si estás trabajando con un flujo de trabajo estándar, el desencadenador integrado denominado Cuando se crea o modifica un elemento está disponible y se basa en el patrón de diseño de feed de cambios de Azure Cosmos DB. Este desencadenador no está disponible para flujos de trabajo de Consumo.

No hay desencadenadores de Azure Cosmos DB disponibles para flujos de trabajo de tipo Consumption. En su lugar, agregue un desencadenador que funcione para su escenario.

Adición de una acción de Azure Cosmos DB

En Azure Logic Apps, una acción es un paso de un flujo de trabajo que sigue un desencadenador u otra acción. El conector de Azure Cosmos DB ofrece acciones para flujos de trabajo de consumo y estándar. En los ejemplos siguientes se muestra cómo usar una acción que crea o actualiza un documento.

Para agregar una acción de Azure Cosmos DB a un flujo de trabajo de consumo, siga estos pasos.

  1. En Azure Portal, abra el flujo de trabajo de Consumo en el diseñador.

  2. Si el flujo de trabajo está en blanco, agregue cualquier desencadenador que desee.

    Este ejemplo comienza con el desencadenador Cuando se recibe una solicitud HTTP.

  3. En el desencadenador o la acción en la que desea agregar la acción de Azure Cosmos DB, siga estos pasos generales para agregar la acción de Azure Cosmos DB que desee.

    En este ejemplo se usa la acción denominada Crear o actualizar documento (V3).

  4. Si se le piden los detalles de la conexión, cree una conexión a su cuenta de Azure Cosmos DB ahora.

  5. En el panel de información de acciones, en la pestaña Parámetros , proporcione la siguiente información necesaria:

    Parámetro Obligatorio Valor Descripción
    Azure Cosmos DB account name (Nombre de la cuenta de Azure Cosmos DB) < Cosmos-DB-account-name> Nombre de cuenta de la cuenta de Azure Cosmos DB.
    Identificador de base de datos < Cosmos-DB-database-name> Base de datos a la que se va a conectar.
    Identificador de colección < Cosmost-DB-container-name> Contenedor que se va a consultar.
    Document < documento JSON> Documento JSON que se va a crear. En este ejemplo se usa el cuerpo de la solicitud de la salida del desencadenador.

    Sugerencia: Si el token Cuerpo del desencadenador HTTP no aparece en la lista de contenido dinámico para agregarlo, seleccione Ver más junto al nombre del desencadenador.

    Nota: Asegúrese de que el cuerpo tiene un formato JSON correcto y que contiene como mínimo la propiedad id y la propiedad de clave de partición del documento. Si existe un documento con la clave de partición y especificada id , se actualiza el documento. En caso contrario, se crea un nuevo documento.

    Por ejemplo:

    Captura de pantalla que muestra el portal de Azure, el diseñador para el flujo de trabajo de Consumo y la acción denominada Crear o actualizar documento (V3).

  6. Para agregar cualquier otro parámetro disponible, abra la lista Parámetros avanzados .

  7. Configure cualquier otro parámetro o configuración según sea necesario.

  8. En la barra de herramientas del diseñador, seleccione Save (Guardar).

  9. Pruebe el flujo de trabajo para confirmar que la acción crea un documento en el contenedor especificado.

Conexión a Azure Cosmos DB

Al agregar un desencadenador o una acción que se conecta a un servicio o sistema, y no tiene una conexión existente o activa, Azure Logic Apps le pide que proporcione la información de conexión, que varía en función del tipo de conexión, por ejemplo:

  • Las credenciales de la cuenta
  • El nombre que se va a usar para la conexión
  • Nombre del sistema o servidor
  • Tipo de autenticación que se debe usar.
  • Una cadena de conexión

Para poder configurar un desencadenador de Azure Cosmos DB o una acción de Azure Cosmos DB, debe conectarse a una cuenta de base de datos.

Para un flujo de trabajo de consumo, una conexión de Azure Cosmos DB requiere la siguiente información:

Parámetro Obligatorio Valor Descripción
Nombre de la conexión < nombre-de-conexión> Nombre que se va a usar para la conexión.
Tipo de autenticación < tipo de conexión> El tipo de autenticación a utilizar. En este ejemplo se usa Clave de acceso.

- Si selecciona Clave de acceso, proporcione los valores de propiedad necesarios restantes para crear la conexión.

- Si selecciona Microsoft Entra ID Integrated, no se requieren otros valores de propiedad, pero debe configurar la conexión siguiendo los pasos para la autenticación de Microsoft Entra y el conector de Azure Cosmos DB.

- Para configurar una identidad administrada, consulte Autenticación del acceso y las conexiones a recursos de Azure con identidades administradas en Azure Logic Apps.
Id. de cuenta < Id. de cuenta> Nombre de la cuenta de Azure Cosmos DB que se usará para esta conexión.
Clave de acceso a la cuenta de Azure Cosmos DB < clave de acceso> Clave de acceso de la cuenta de Azure Cosmos DB que se usará para esta conexión. Este valor es una clave de lectura y escritura o una clave de solo lectura.

Nota: Para encontrar la clave, vaya a la página de la cuenta de Azure Cosmos DB. En el menú de la cuenta, en Configuración, seleccione Claves. Copie uno de los valores de clave disponibles.

Nota:

Después de crear la conexión, si tiene una conexión de Azure Cosmos DB diferente que desea usar en su lugar, o si desea crear una nueva conexión, seleccione Cambiar conexión en la pestaña Parámetros del panel de información de desencadenador o acción.

Configuración de la autenticación de identidad administrada

Para usar una identidad administrada con el conector de Azure Cosmos DB, primero debe asignar el rol de plano de datos Azure Cosmos DB adecuado a la identidad administrada. Azure Cosmos DB usa su propio sistema de control de acceso basado en rol (RBAC) para las operaciones del plano de datos por separado de Azure RBAC.

El rol integrado denominado Colaborador de datos integrado de Cosmos DB (identificador de definición de rol: 00000000-0000-0000-0000-000000000002) concede acceso de lectura y escritura a los datos de Azure Cosmos DB. Para más información, vea Uso del control de acceso basado en rol del plano de datos con Azure Cosmos DB for NoSQL.

En Flujos de trabajo de consumo, al crear la conexión Azure Cosmos DB, seleccione Identidad administrada de Logic Apps como tipo de autenticación. No es necesario proporcionar ningún otro valor de propiedad, pero asegúrese de asignar el rol de plano de datos de Cosmos DB a la identidad administrada de la aplicación lógica, tal como se describe en las secciones siguientes.

Para obtener más información sobre las identidades administradas de consumo, consulte Autenticación del acceso y las conexiones a recursos de Azure con identidades administradas en Azure Logic Apps.

Asignación de un rol de plano de datos de Cosmos DB a una identidad administrada asignada por el sistema

Para usar una identidad administrada asignada por el sistema, primero asegúrese de que la identidad está habilitada en el recurso de la aplicación lógica. A continuación, obtenga el identificador principal de la identidad y asigne el rol del plano de datos de Azure Cosmos DB.

  1. En el portal de Azure, vaya al recurso de la aplicación lógica. En la barra lateral del recurso, en Configuración, seleccione Identidad.

  2. Confirme que la identidad asignada por el sistema está establecida en Activado. Copie el valor de ID de objeto (entidad de seguridad).

  3. En CLI de Azure, asigne el rol Colaborador de datos integrado de Cosmos DB a la identidad administrada asignada por el sistema:

    az cosmosdb sql role assignment create \
      --resource-group "<cosmos-db-resource-group>" \
      --account-name "<cosmos-db-account-name>" \
      --role-definition-id "00000000-0000-0000-0000-000000000002" \
      --principal-id "<system-assigned-identity-principal-id>" \
      --scope "/subscriptions/<subscription-id>/resourceGroups/<cosmos-db-resource-group>/providers/Microsoft.DocumentDB/databaseAccounts/<cosmos-db-account-name>"
    

    Nota:

    El --scope parámetro define el nivel de acceso. Puede definir el ámbito de la asignación de roles al nivel de cuenta, una base de datos específica o un contenedor específico. Para más información, vea Uso del control de acceso basado en rol del plano de datos con Azure Cosmos DB for NoSQL.

Asignación del rol de plano de datos de Cosmos DB a una identidad administrada asignada por el usuario

Para poder usar una identidad administrada asignada por el usuario, cree primero la identidad, agréguela a la aplicación lógica y, a continuación, asigne el rol de plano de datos Azure Cosmos DB.

  1. Obtenga el identificador de entidad de seguridad de la identidad administrada asignada por el usuario. En la CLI de Azure, ejecute el siguiente comando:

    az identity show \
      --resource-group "<identity-resource-group>" \
      --name "<identity-name>" \
      --query principalId \
      --output tsv
    
  2. Asigne el rol Colaborador de datos integrado de Cosmos DB a la identidad administrada asignada por el usuario:

    az cosmosdb sql role assignment create \
      --resource-group "<cosmos-db-resource-group>" \
      --account-name "<cosmos-db-account-name>" \
      --role-definition-id "00000000-0000-0000-0000-000000000002" \
      --principal-id "<user-assigned-identity-principal-id>" \
      --scope "/subscriptions/<subscription-id>/resourceGroups/<cosmos-db-resource-group>/providers/Microsoft.DocumentDB/databaseAccounts/<cosmos-db-account-name>"
    
  3. Al crear la conexión de Azure Cosmos DB en el diseñador de flujos de trabajo, proporcione el identificador completo del recurso de la identidad administrada asignada por el usuario como valor de Managed identity, por ejemplo:

    /subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identity-name}
    

    Tip

    Para buscar el identificador de recurso completo, siga estos pasos:

    1. En el portal de Azure, vaya al recurso de identidad administrada asignada por el usuario.
    2. En la barra lateral del recurso, seleccione Información general.
    3. En la página Información general , busque la sección Propiedades y, a continuación, copie el valor id .

Procedimientos recomendados de operaciones integradas de Azure Cosmos DB

Obtener resultados iterables de la acción Consultar elementos

En un flujo de trabajo Estándar, la acción integrada Elementos de consulta genera muchos elementos de salida de contenido dinámico para su uso en acciones posteriores. Para obtener los elementos de resultado de la consulta o los metadatos de elementos como un objeto iterable, siga estos pasos:

  1. En Azure Portal, abra el flujo de trabajo Estándar en el diseñador.

  2. Si el flujo de trabajo está en blanco, agregue cualquier desencadenador que desee.

    Este ejemplo comienza con el desencadenador Periodicidad.

  3. En el desencadenador o la acción en la que desea agregar la acción de Azure Cosmos DB, siga estos pasos generales para agregar la acción de Azure Cosmos DB denominada Elementos de consulta.

  4. Si se le piden los detalles de la conexión, cree una conexión a su cuenta de Azure Cosmos DB.

  5. En el panel de información de acciones, en la pestaña Parámetros , proporcione la siguiente información necesaria:

    Parámetros Obligatorio Valor Descripción
    Id. de base de datos < database-ID> Base de datos a la que se va a conectar.
    Id. de contenedor < container-ID> Contenedor que se va a consultar.
    Consulta SQL < consulta sql> Consulta SQL para la solicitud.

    En el ejemplo siguiente se muestra la acción Elementos de consulta :

    Captura de pantalla que muestra Azure Portal, el diseñador para el flujo de trabajo estándar y la acción integrada de Azure Cosmos DB denominada Elementos de consulta.

  6. Configure cualquier otro parámetro o configuración según sea necesario.

  7. En la acción Elementos de consulta, siga estos pasos generales para agregar una acción que desea ejecutar en todos los elementos de consulta devueltos.

    En este ejemplo se usa la acción integrada de Azure Cosmos DB denominada Eliminar un elemento.

  8. En la acción Eliminar un elemento , puede acceder a las salidas de la acción Elementos de consulta siguiendo estos pasos:

    1. Seleccione dentro de cualquier campo de entrada para mostrar las opciones disponibles.

    2. Seleccione el icono del rayo para abrir la lista de contenido dinámico.

    3. En la sección Elementos de consulta de la lista, seleccione la salida que desee o seleccione Ver más para obtener más salidas.

      Por ejemplo, puede seleccionar Elemento de elementos de respuesta para rellenar el campo Id. de elemento con identificadores de los resultados de la consulta.

      Después de seleccionar el elemento Elementos de respuesta, la acción For each se agrega automáticamente para iterar por todos los resultados de la consulta. El bucle For each contiene la acción Eliminar un elemento .

      Captura de pantalla que muestra Azure Portal, el diseñador para el flujo de trabajo estándar y la acción integrada de Azure Cosmos DB denominada Eliminar un elemento.

  9. Agregue cualquier otra acción que desee al bucle.

  10. En la barra de herramientas del diseñador, seleccione Save (Guardar).

  11. Pruebe el flujo de trabajo para confirmar que las acciones devuelven la salida que espera.