Compartir vía


Actividad de Azure Function en Azure Data Factory

SE APLICA A: Azure Data Factory Azure Synapse Analytics

Sugerencia

Data Factory en Microsoft Fabric es la próxima generación de Azure Data Factory, con una arquitectura más sencilla, inteligencia artificial integrada y nuevas características. Si no está familiarizado con la integración de datos, comience con Fabric Data Factory. Las cargas de trabajo de ADF existentes pueden actualizarse a Fabric para acceder a nuevas funcionalidades en ciencia de datos, análisis en tiempo real e informes.

La actividad Azure Function permite ejecutar Azure Functions en una canalización de Azure Data Factory o Synapse. Para ejecutar una función de Azure, debe crear una conexión de servicio vinculado. A continuación, puede usar el servicio vinculado con una actividad que especifique la función Azure que planea ejecutar.

Creación de una actividad de función Azure con la interfaz de usuario

Para usar una actividad de función de Azure en una canalización, complete los pasos siguientes:

  1. Expanda la sección de la función de Azure del panel Actividades de la canalización y arrastre una actividad de función de Azure al lienzo de la canalización.

  2. Seleccione la nueva actividad Azure Function en el lienzo si aún no está seleccionada y su pestaña Settings para editar sus detalles.

    Captura de pantalla de la interfaz de usuario para una actividad de función de Azure.

  3. Si aún no tiene definido un servicio vinculado de función de Azure, seleccione Nuevo para crear uno nuevo. En el nuevo panel de servicio vinculado de Azure Function, elija la dirección URL de la Azure Function App existente y proporcione una Clave de Función.

    Captura de pantalla del panel de creación del servicio vinculado de Azure Function.

  4. Después de seleccionar el servicio vinculado Azure Function, proporcione el nombre de la función y otros detalles para completar la configuración.

Servicio vinculado de la función de Azure

El tipo de valor devuelto de la función Azure debe ser un JObject válido. (Tenga en cuenta que JArrayno es un JObject. Cualquier tipo de valor devuelto distinto de JObject falla y genera el error de usuario El contenido de la respuesta no es un JObject válido.

La clave de función proporciona acceso seguro al nombre de la función; cada una de ellas tiene claves únicas independientes o una clave maestra dentro de una aplicación de funciones. La identidad administrada proporciona acceso seguro a toda la aplicación de funciones. El usuario debe proporcionar la clave para acceder al nombre de la función. Consulte la documentación de la función para más información sobre la clave de acceso de la función.

Propiedad Descripción Requerido
Tipo La propiedad type debe establecerse en: AzureFunction
Dirección URL de la aplicación de funciones Dirección URL de Azure Function App. El formato es https://<accountname>.azurewebsites.net. Esta dirección URL es el valor en la sección URL cuando visualizas la aplicación de funciones en el portal de Azure.
Clave de la función Clave de acceso para la función Azure. Seleccione la sección Administrar de la función correspondiente y copie la clave de función o la clave host. Obtenga más información aquí: Trabajar con claves de acceso
Administración Método de autenticación usado para llamar a la función Azure. Los valores admitidos son identidad administrada asignada por el sistema o "anónimo".
Id. de recurso El identificador de aplicación (cliente) de la función de Azure. Cambie a la sección Autenticación de la función correspondiente y obtenga el identificador de aplicación (cliente) en Proveedor de identidades. Esta propiedad se muestra cuando se usa la identidad administrada asignada por el sistema. Para obtener más información, consulte cómo configurar su aplicación de App Service o Azure Functions para utilizar el inicio de sesión de Microsoft Entra. No*

/* La resourceId propiedad es necesaria cuando se usa la autenticación de identidad administrada asignada por el sistema.

Autenticación de identidad administrada asignada por el sistema

Puede usar la autenticación de identidad administrada asignada por el sistema (SAMI) de dos maneras:

  • Establezca el identificador de recurso en https://management.azure.com. Data Factory se conecta a function App mediante su identidad administrada asignada por el sistema y ejecuta la aplicación de funciones con autenticación anónima.

  • Para entornos seguros en los que no desea usar la autenticación anónima, configure un nombre de entidad de seguridad de servicio (SPN) como identificador de recurso. El SPN debe configurarse correctamente en la Function App.

    1. Cree un nuevo registro de aplicación como identidad de entidad de servicio.

    2. En la aplicación de funciones, vaya a la sección Autenticación en Configuración y cree un proveedor de identidades.

    3. Agregue el identificador de aplicación de ADF en la sección Solicitudes permitidas de aplicaciones cliente específicas y el identificador de objeto en la sección Permitir solicitudes de identificaciones específicas . Para encontrar el identificador de aplicación y el identificador de objeto, siga estos pasos:

      1. Abra el portal Azure
      2. Vaya a Aplicaciones empresariales.
      3. Busque el nombre de la identidad administrada/Azure Data Factory.
      4. Copie los identificadores de objeto y aplicación que se encuentran en la tabla.

      Captura de pantalla del registro de la aplicación, en la que se muestran los cuadros que se van a rellenar con el identificador de la aplicación y el identificador de objeto.

Actividad de Azure Function

Propiedad Descripción Valores permitidos Requerido
Nombre Nombre de la actividad en la canalización String
Tipo El tipo de actividad es "AzureFunctionActivity" String
Servicio vinculado El servicio vinculado de la función de Azure para la instancia correspondiente de Azure Function App Referencia al servicio vinculado
Nombre de la función Nombre de la función en la Aplicación de Funciones de Azure a la que llama esta actividad String
Método Método de API de REST para llamar a la función Tipos de cadena admitidos: "GET", "POST" y "PUT"
Encabezado Encabezados que se envían a la solicitud. Por ejemplo, para establecer el idioma y el tipo en una solicitud: "headers": { "Accept-Language": "en-us", "Content-Type": "application/json" } Cadena (o expresión con un valor resultType de cadena) No
Body Cuerpo que se envía junto con la solicitud al método de API de la función Cadena (o expresión con un valor resultType de cadena) u objeto. Necesario para los métodos POST o PUT

Vea el esquema de la carga de solicitud en la sección Solicitar un esquema de carga.

Enrutamiento y consultas

La actividad de función Azure admite enrutamiento. Por ejemplo, si la función de Azure tiene el punto de conexión https://functionAPP.azurewebsites.net/api/<functionName>/<value>?code=<secret>, el functionName que se usará en la actividad de función de Azure es <functionName>/<value>. Se puede parametrizar esta función para proporcionar el elemento functionName que se quiera en el tiempo de ejecución.

Nota:

El valor de functionName de Durable Functions se debe tomar de la propiedad route del enlace de la función en su definición JSON, para incluir su información de enrutamiento. Si se usa simplemente functionName sin el detalle de la ruta incluido, se produce un error porque no se encuentra la aplicación de funciones.

La actividad de función de Azure también admite consultas. Se debe incluir una consulta como parte del elemento functionName. Por ejemplo, cuando el nombre de la función es HttpTriggerCSharp y la consulta que desea incluir es name=hello, puede construir el functionName en la actividad de función de Azure como HttpTriggerCSharp?name=hello. Esta función se puede parametrizar, por lo que el valor se puede determinar en el tiempo de ejecución.

Funciones de tiempo de espera y de larga duración

Azure Functions agota el tiempo de espera después de 230 segundos, independientemente de la configuración de functionTimeout que haya configurado en las opciones. Para obtener más información, consulte este artículo. Para solucionar este comportamiento, siga un patrón asincrónico o use Durable Functions. La ventaja de Durable Functions es que ofrece su propio mecanismo de seguimiento de estado, por lo que no tendrá que implementar el suyo propio.

Obtenga más información sobre Durable Functions en este artículo. Puede configurar una actividad de función de Azure para llamar a Durable Function, que devolverá una respuesta con un URI diferente, como este ejemplo. Dado que statusQueryGetUri devuelve código de estado HTTP 202 mientras la función se ejecuta, puede sondear el estado de la función mediante una actividad web. Configure una actividad web con el campo url establecido en @activity('<AzureFunctionActivityName>').output.statusQueryGetUri. Cuando se completa la Función Durable, la salida de la función es la salida de la Actividad Web.

Muestra

Puede encontrar un ejemplo que usa una función Azure para extraer el contenido de un archivo tar here.

Obtenga más información sobre las actividades admitidas en Canalizaciones y actividades.