Attività della funzione di Azure in Azure Data Factory

SI APPLICA A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Provare Data Factory in Microsoft Fabric, una soluzione di analisi all-in-one per le aziende. Microsoft Fabric copre tutto, dallo spostamento dati al data science, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Vedere le informazioni su come iniziare una nuova prova gratuita!

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

Creare un'attività di Funzione di Azure con l'interfaccia utente

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

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

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

    Mostra l'interfaccia utente per un'attività di Funzione di Azure.

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

    Mostra il nuovo riquadro di creazione del servizio collegato Funzione di Azure.

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

Servizio collegato della funzione di Azure

Il tipo restituito della funzione di 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 delle funzioni e ognuna di esse ha chiavi univoche separate o 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 della 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 dell'app per le funzioni di Azure. Il formato è https://<accountname>.azurewebsites.net. Questo URL è il valore presente nella sezione URL quando si visualizza l'app per le funzioni nel portale di Azure
Chiave della funzione Chiave di accesso per la funzione di Azure. Fare clic sulla sezione Gestisci per la funzione corrispondente e copiare il tasto funzione o la chiave host. Altre informazioni sono disponibili qui: Usare le chiavi di accesso
Autenticazione Metodo di autenticazione usato per chiamare la funzione di Azure. I valori supportati sono 'Identità gestita assegnata dal sistema' o 'anonimo'.
ID risorsa ID app (client) della funzione di Azure. Passare alla sezione Autenticazione della rispettiva funzione e ottenere l'ID app (client) in Provider di identità. Questa proprietà verrà 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 l'uso dell'account di accesso di Microsoft Entra. No

Nota

Quando si usa l'autenticazione anonima, assicurarsi di aver disattivato l'identità lato Funzione di Azure.

Attività Funzioni di Azure

Proprietà Descrizione Valori consentiti Obbligatorio
Nome Nome dell'attività nella pipeline String
Type Il tipo di attività è 'AzureFunctionActivity' String
Servizio collegato Servizio collegato della funzione di Azure collegata per l'app per le funzioni di Azure corrispondente Riferimento del servizio collegato
Nome funzione Nome della funzione nell'app per le funzioni di Azure chiamata dall'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
Testo 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à di Funzione di Azure supporta il routing. Ad esempio, se la funzione di Azure ha l'endpoint https://functionAPP.azurewebsites.net/api/<functionName>/<value>?code=<secret>, l'oggetto functionName da usare nell'attività della funzione di Azure è <functionName>/<value>. È possibile parametrizzare questa funzione per fornire l'oggetto desiderato functionName in fase di esecuzione.

Nota

L'oggetto functionName per Durable Functions deve essere tratto dalla proprietà route dell'associazione della funzione nella relativa definizione JSON, per includere le informazioni di routing. Se si usa semplicemente functionName senza includere i dettagli della route, si verifica un errore perché non è possibile trovare l'app per le funzioni.

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

Timeout e funzioni a esecuzione prolungata

Funzioni di Azure va in timeout dopo 230 secondi indipendentemente dall'impostazione functionTimeout configurata nelle impostazioni. Per altre informazioni, vedi questo articolo. Per risolvere questo comportamento, seguire un modello asincrono o usare Durable Functions. Il vantaggio di Durable Functions è che queste offrono il loro meccanismo di rilevamento dello stato, quindi non è necessario implementare il proprio rilevamento dello stato.

Altre informazioni su Durable Functions sono disponibili in questo articolo. È possibile configurare un'attività di funzione di Azure per chiamare la Durable Function, che restituirà una risposta con un URI diverso, come in questo esempio. Poiché 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. Al termine della Durable Function, l'output della funzione sarà l'output dell'attività Web.

Esempio

È possibile trovare un esempio in cui viene usata una funzione di Azure per estrarre il contenuto di un file tar qui.

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