Azure Function-aktivitet i Azure Data Factory
GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics
Dricks
Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!
Med azure-funktionsaktiviteten kan du köra Azure Functions i en Azure Data Factory- eller Synapse-pipeline. Om du vill köra en Azure-funktion måste du skapa en länkad tjänstanslutning. Sedan kan du använda den länkade tjänsten med en aktivitet som anger den Azure-funktion som du planerar att köra.
Skapa en Azure-funktionsaktivitet med användargränssnittet
Utför följande steg för att använda en Azure-funktionsaktivitet i en pipeline:
Expandera avsnittet Azure-funktion i fönstret Pipelineaktiviteter och dra en Azure-funktionsaktivitet till pipelinearbetsytan.
Välj den nya Azure-funktionsaktiviteten på arbetsytan om den inte redan är markerad och fliken Inställningar för att redigera dess information.
Om du inte redan har definierat en länkad Azure-funktionstjänst väljer du Ny för att skapa en ny. I det nya fönstret för länkad Azure-funktionstjänst väljer du din befintliga Url för Azure-funktionsappen och anger en funktionsnyckel.
När du har valt den länkade Azure-funktionstjänsten anger du funktionsnamnet och annan information för att slutföra konfigurationen.
Länkad Azure-funktionstjänst
Returtypen för Azure-funktionen måste vara giltig JObject
. (Tänk på att JArray är inte en JObject
.) Alla andra returtyper än JObject
misslyckas och genererar användarfelet Svarsinnehåll är inte en giltig JObject.
Funktionsnyckel ger säker åtkomst till funktionsnamn där var och en har separata unika nycklar eller huvudnyckel i en funktionsapp. Hanterad identitet ger säker åtkomst till hela funktionsappen. Användaren måste ange nyckeln för att få åtkomst till funktionsnamnet. Mer information finns i funktionsdokumentationen för mer information om funktionsåtkomstnyckel
Property | Beskrivning | Krävs |
---|---|---|
Typ | Typegenskapen måste anges till: AzureFunction | Ja |
Url för funktionsapp | URL för Azure-funktionsappen. Formatet är https://<accountname>.azurewebsites.net . Den här URL:en är värdet under URL-avsnittet när du visar funktionsappen i Azure-portalen |
Ja |
Funktionsnyckel | Åtkomstnyckel för Azure-funktionen. Klicka på avsnittet Hantera för respektive funktion och kopiera antingen funktionsnyckeln eller värdnyckeln. Läs mer här: Arbeta med åtkomstnycklar | Ja |
Autentisering | Den autentiseringsmetod som används för att anropa Azure-funktionen. De värden som stöds är "Systemtilldelad hanterad identitet" eller "anonym". | Ja |
Resurs-ID | App-ID:t (klient) för Azure-funktionen. Växla till avsnittet Autentisering för respektive funktion och hämta app-ID :t (klient)under Identitetsprovider. Den här egenskapen visas när du använder systemtilldelad hanterad identitet. Mer information finns i Konfigurera din App Service- eller Azure Functions-app så att den använder Microsoft Entra-inloggning. | Nej |
Kommentar
När du använder anonym autentisering kontrollerar du att du har tagit ner din identitet på Azure-funktionssidan.
Azure-funktionsaktivitet
Property | Beskrivning | Tillåtna värden | Krävs |
---|---|---|---|
Name | Namnet på aktiviteten i pipelinen | String | Ja |
Typ | Typen av aktivitet är "AzureFunctionActivity" | String | Ja |
Länkad tjänst | Den länkade Azure-funktionstjänsten för motsvarande Azure-funktionsapp | Referens för länkad tjänst | Ja |
Funktionsnamn | Namnet på funktionen i Azure-funktionsappen som den här aktiviteten anropar | String | Ja |
Metod | REST API-metod för funktionsanropet | Strängtyper som stöds: "GET", "POST", "PUT" | Ja |
Header | Rubriker som skickas till begäran. Om du till exempel vill ange språket och skriva på en begäran: "headers": { "Accept-Language": "en-us", "Content-Type": "application/json" } | Sträng (eller uttryck med resultType of string) | Nej |
Text | Brödtext som skickas tillsammans med begäran till funktions-API-metoden | Sträng (eller uttryck med resultType av sträng) eller objekt. | Krävs för PUT/POST-metoder |
Se schemat för nyttolasten för begäran i avsnittet Schema för nyttolast för begäran.
Routning och frågor
Azure-funktionsaktiviteten stöder routning. Om din Azure-funktion till exempel har slutpunkten https://functionAPP.azurewebsites.net/api/<functionName>/<value>?code=<secret>
är <functionName>/<value>
den functionName
som ska användas i Azure-funktionsaktiviteten . Du kan parametrisera den här funktionen för att ange önskad functionName
vid körning.
Kommentar
functionName
For Durable Functions ska hämtas från routningsegenskapen för funktionens bindning i dess JSON-definition för att inkludera dess routningsinformation. Att bara använda functionName
utan den väginformation som ingår resulterar i ett fel eftersom funktionsappen inte kan hittas.
Azure-funktionsaktiviteten stöder även frågor. En fråga måste ingå som en del av functionName
. När funktionsnamnet till exempel är HttpTriggerCSharp
och frågan som du vill inkludera är name=hello
kan du konstruera functionName
i Azure-funktionsaktiviteten som HttpTriggerCSharp?name=hello
. Den här funktionen kan parametriseras så att värdet kan fastställas vid körning.
Timeout- och tidskrävande funktioner
Azure Functions överskrider tidsgränsen efter 230 sekunder oavsett vilken functionTimeout
inställning du har konfigurerat i inställningarna. Mer information finns i denna artikel. Om du vill kringgå det här beteendet följer du ett asynkront mönster eller använder Durable Functions. Fördelen med Durable Functions är att de erbjuder en egen mekanism för tillståndsspårning, så du behöver inte implementera din egen tillståndsspårning.
Läs mer om Durable Functions i den här artikeln. Du kan konfigurera en Azure-funktionsaktivitet för att anropa Durable Function, som returnerar ett svar med en annan URI, till exempel det här exemplet. Eftersom statusQueryGetUri
returnerar HTTP-status 202 medan funktionen körs kan du avsöka funktionens status med hjälp av en webbaktivitet. Konfigurera en webbaktivitet med fältet inställt på url
@activity('<AzureFunctionActivityName>').output.statusQueryGetUri
. När durable-funktionen har slutförts blir utdata från funktionen utdata från webbaktiviteten.
Exempel
Du hittar ett exempel som använder en Azure-funktion för att extrahera innehållet i en tar-fil här.
Relaterat innehåll
Läs mer om aktiviteter som stöds i Pipelines och aktiviteter.