Condividi tramite


Attività della funzione di Azure in Azure Data Factory

APPLICABILE A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Data Factory in Microsoft Fabric è la nuova generazione di Azure Data Factory, con un'architettura più semplice, un'intelligenza artificiale predefinita e nuove funzionalità. Se non si ha familiarità con l'integrazione dei dati, iniziare con Fabric Data Factory. I carichi di lavoro di Azure Data Factory esistenti possono eseguire l'aggiornamento a Fabric per accedere a nuove funzionalità tra data science, analisi in tempo reale e creazione di report.

L'attività funzione Azure consente di eseguire Funzioni di Azure in una pipeline di Azure Data Factory o Synapse. Per eseguire una funzione Azure, è necessario creare una connessione al servizio collegato. È quindi possibile usare il servizio collegato con un'attività che specifica la funzione Azure che si intende eseguire.

Creare un'attività della funzione Azure con l'interfaccia utente

Per usare un'attività funzione Azure in una pipeline, completare la procedura seguente:

  1. Espandere la sezione Funzione di Azure del riquadro Attività della pipeline e trascinare un'attività Funzione di Azure nell'area di disegno della pipeline.

  2. Selezionare la nuova attività Azure Funzione nell'area di disegno, se non è già selezionata, e la relativa scheda Settings per modificarne i dettagli.

    Screenshot dell'interfaccia utente per un'attività della funzione Azure.

  3. Se non è già stato definito un servizio collegato funzione Azure, selezionare Nuovo per crearne uno nuovo. Nel nuovo riquadro del servizio collegato di Azure Function, scegliere l'URL dell'app per le funzioni Azure esistente e specificare una chiave della funzione.

    Screenshot del nuovo riquadro di creazione del servizio collegato Azure Function.

  4. Dopo aver selezionato il servizio collegato Azure Funzione, specificare il nome della funzione e altri dettagli per completare la configurazione.

servizio collegato Azure Functions

Il tipo restituito della funzione Azure deve essere un JObject valido. (Tenere presente che JArraynon è un JObject.) Qualsiasi tipo restituito diverso da JObject ha esito negativo e genera l'errore utente Il contenuto della risposta non è un JObject valido.

La chiave di funzione fornisce accesso sicuro al nome della funzione e ognuna di esse dispone di chiavi univoche separate o di una chiave master in un'app per le funzioni. L'identità gestita fornisce accesso sicuro all'intera app per le funzioni. L'utente deve fornire la chiave per accedere al nome della funzione. Per altre informazioni, vedere la documentazione sulla funzione per altri dettagli sulla chiave di accesso alle funzioni

Proprietà Descrizione Obbligatorio
Type La proprietà type deve essere impostata su: AzureFunction
URL dell'app per le funzioni URL per l'app per le funzioni Azure. Il formato è https://<accountname>.azurewebsites.net. Questo URL è il valore nella sezione URL quando si visualizza la Function App nel portale di Azure.
Chiave di funzione Chiave di accesso per la funzione Azure. Selezionare la sezione Gestisci per la rispettiva funzione e copiare la chiave funzione o la chiave host. Altre informazioni sono disponibili qui: Utilizzare le chiavi di accesso
Authentication Metodo di autenticazione usato per chiamare la funzione Azure. I valori supportati sono Identità gestita assegnata dal sistema o 'anonymous'.
ID risorsa ID app (client) della funzione Azure. Passare alla sezione Autenticazione della rispettiva funzione e ottenere l'ID app (client) in Provider di identità. Questa proprietà viene visualizzata quando si usa l'identità gestita assegnata dal sistema. Per altre informazioni, vedere Configurare il servizio app o l'app Funzioni di Azure per usare Microsoft Entra account di accesso. No*

/* La resourceId proprietà è necessaria quando si usa l'autenticazione dell'identità gestita assegnata dal sistema.

Autenticazione dell'identità gestita assegnata dal sistema

È possibile usare l'autenticazione dell'identità gestita assegnata dal sistema (SAMI) in due modi:

  • Impostare l'ID risorsa su https://management.azure.com. Data Factory si connette all'app per le funzioni usando l'identità gestita assegnata dal sistema ed esegue l'app per le funzioni con autenticazione anonima.

  • Per ambienti sicuri dove non si desidera utilizzare l'autenticazione anonima, configurare un Service Principal Name (SPN) come ID risorsa. Il nome SPN deve essere configurato correttamente nell'app per le funzioni:

    1. Creare una nuova registrazione dell'app come identità dell'entità servizio.

    2. Nell'app per le funzioni passare alla sezione Autenticazione in Impostazioni e creare un provider di identità.

    3. Aggiungere l'ID applicazione ADF nella sezione Richieste consentite da applicazioni client specifiche e l'ID oggetto nella sezione Consenti richieste da identificatori specifici . L'ID applicazione e l'ID oggetto sono disponibili seguendo questa procedura:

      1. Aprire il portale di Azure
      2. Passare alle applicazioni aziendali
      3. Cerca il nome della tua identità Azure Data Factory/gestita.
      4. Copiare l'oggetto e gli ID applicazione trovati nella tabella.

      Screenshot della registrazione dell'app, che mostra le caselle da compilare con l'ID applicazione e l'ID oggetto.

attività di Azure Functions

Proprietà Descrizione Valori consentiti Obbligatorio
Nome Nome dell'attività nella pipeline string
Type Il tipo di attività è "AzureFunctionActivity" string
Servizio collegato Servizio collegato di Azure Function per l'applicazione funzione di Azure corrispondente Riferimento del servizio collegato
Nome della funzione Nome della funzione nell'app per le funzioni Azure chiamata da questa attività string
Metodo Metodo dell'API REST per la chiamata di funzione Tipi supportati di stringa: "GET", "POST", "PUT"
Intestazione Intestazioni che vengono inviate alla richiesta. Ad esempio, per impostare la lingua e il tipo in una richiesta: "headers": { "Accept-Language": "en-us", "Content-Type": "application/json" } Stringa (o un'espressione con l'elemento resultType della stringa) No
Corpo Corpo inviato insieme alla richiesta al metodo API della funzione Stringa (o espressione con l'elemento resultType della stringa) o oggetto. Obbligatorio per i metodi POST e PUT

Vedere lo schema del payload della richiesta nella sezione Schema del payload della richiesta.

Routing e query

L'attività della funzione Azure supporta routing. Ad esempio, se la funzione Azure ha l'endpoint https://functionAPP.azurewebsites.net/api/<functionName>/<value>?code=<secret>, il functionName da usare nell'attività della funzione Azure è <functionName>/<value>. È possibile parametrizzare questa funzione per fornire l'oggetto functionName desiderato in fase di runtime.

Note

Il functionName per Durable Functions deve essere tratto dalla proprietà route dell'associazione della funzione nella relativa definizione JSON, per includere le informazioni di routing. Usando semplicemente il functionName senza includere il dettaglio della route, si verifica un errore perché la Function App non può essere trovata.

L'attività della funzione Azure supporta anche queries. Una query deve essere inclusa come parte di functionName. Ad esempio, quando il nome della funzione è HttpTriggerCSharp e la query da includere è name=hello, è possibile costruire il functionName nell'attività della funzione Azure come HttpTriggerCSharp?name=hello. Questa funzione può essere parametrizzata in modo che il valore possa essere determinato in fase di runtime.

Timeout e funzioni a esecuzione prolungata

Funzioni di Azure va in timeout dopo 230 secondi indipendentemente dalla configurazione functionTimeout che hai configurato nelle impostazioni. Per altre informazioni, vedere questo articolo. Per ovviare a questo comportamento, seguire un modello asincrono o usare Durable Functions. Il vantaggio di Durable Functions è che offrono il proprio meccanismo di rilevamento dello stato, quindi non è necessario implementare il proprio rilevamento dello stato.

Altre informazioni sulle Durable Functions in questo articolo. È possibile configurare un'attività di funzione Azure per chiamare la funzione durevole, che restituirà una risposta con un URI diverso, ad esempio questo esempio. Dato che statusQueryGetUri restituisce lo stato HTTP 202 mentre la funzione è in esecuzione, è possibile eseguire il polling dello stato della funzione usando un'attività Web. Configurare un'attività Web con il campo url impostato su @activity('<AzureFunctionActivityName>').output.statusQueryGetUri. Quando la Funzione Durevole si completa, l'output della funzione diventa quello dell'attività Web.

Esempio

È possibile trovare un esempio che usa una funzione di Azure per estrarre il contenuto di un file tar here.

Altre informazioni sulle attività supportate in Pipeline e attività.