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:
Espandere la sezione Funzione di Azure del riquadro Attività pipeline e trascinare un'attività di Funzione di Azure nell'area di disegno della pipeline.
Selezionare la nuova attività Funzione di Azure nell'area di disegno se non è già selezionata e la relativa scheda Impostazioni per modificarne i dettagli.
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.
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 | Sì |
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 |
Sì |
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 | Sì |
Autenticazione | Metodo di autenticazione usato per chiamare la funzione di Azure. I valori supportati sono 'Identità gestita assegnata dal sistema' o 'anonimo'. | Sì |
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 | Sì |
Type | Il tipo di attività è 'AzureFunctionActivity' | String | Sì |
Servizio collegato | Servizio collegato della funzione di Azure collegata per l'app per le funzioni di Azure corrispondente | Riferimento del servizio collegato | Sì |
Nome funzione | Nome della funzione nell'app per le funzioni di Azure chiamata dall'attività | String | Sì |
metodo | Metodo dell'API REST per la chiamata di funzione | Tipi supportati di stringa: "GET", "POST", "PUT" | Sì |
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.
Contenuto correlato
Altre informazioni sulle attività supportate in Pipeline e attività.