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:

  1. Expandera avsnittet Azure-funktion i fönstret Pipelineaktiviteter och dra en Azure-funktionsaktivitet till pipelinearbetsytan.

  2. Välj den nya Azure-funktionsaktiviteten på arbetsytan om den inte redan är markerad och fliken Inställningar för att redigera dess information.

    Visar användargränssnittet för en Azure-funktionsaktivitet.

  3. 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.

    Visar det nya fönstret för skapande av länkad Azure-funktionstjänst.

  4. 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=hellokan 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.

Läs mer om aktiviteter som stöds i Pipelines och aktiviteter.