Aktivität „Azure Function“ in Azure Data Factory

GILT FÜR: Azure Data Factory Azure Synapse Analytics

Tipp

Testen Sie Data Factory in Microsoft Fabric, eine All-in-One-Analyselösung für Unternehmen. Microsoft Fabric deckt alle Aufgaben ab, von der Datenverschiebung bis hin zu Data Science, Echtzeitanalysen, Business Intelligence und Berichterstellung. Erfahren Sie, wie Sie kostenlos eine neue Testversion starten!

Mit der Aktivität „Azure-Funktion“ können Sie Azure-Funktionen in einer Azure Data Factory- oder Synapse-Pipeline ausführen. Um eine Azure-Funktion auszuführen, müssen Sie eine Verbindung mit einem verknüpften Dienst erstellen. Anschließend können Sie den verknüpften Dienst mit einer Aktivität verwenden, die die auszuführende Azure-Funktion angibt.

Erstellen einer Azure Function-Aktivität über die Benutzeroberfläche

Führen Sie die folgenden Schritte aus, um eine Azure Functions-Aktivität in einer Pipeline zu verwenden:

  1. Erweitern Sie im Bereich „Aktivitäten“ der Pipeline den Abschnitt „Azure Functions“, und ziehen Sie eine Azure Functions-Aktivität in den Pipelinebereich.

  2. Wählen Sie auf der Canvas die neue Azure Functions-Aktivität aus, sofern sie noch nicht ausgewählt ist, und wählen Sie anschließend die Registerkarte Einstellungen aus, um die Details zu bearbeiten.

    Shows the UI for an Azure Function activity.

  3. Wenn Sie noch keinen verknüpften Azure Functions-Dienst definiert haben, wählen Sie „Neu“ aus, um einen neuen zu erstellen. Wählen Sie im neuen verknüpften Azure Functions-Dienstbereich die URL Ihrer vorhandenen Azure Funktions-App aus, und geben Sie einen Funktionsschlüssel an.

    Shows the new Azure Function linked service creation pane.

  4. Nachdem Sie den verknüpften Azure Function-Dienst ausgewählt haben, geben Sie den Funktionsnamen und andere Details an, um die Konfiguration abzuschließen.

Verknüpfter Dienst der Azure-Funktion

Der Rückgabetyp der Azure-Funktion muss ein gültiges JObject sein. (Beachten Sie, dass JArraykeinJObject ist.) Jeder andere Rückgabetyp als JObject führt zu dem Benutzerfehler Antwortinhalt ist kein gültiges JObject.

Der Funktionsschlüssel bietet sicheren Zugriff auf den Funktionsnamen, wobei jede Funktion über einen eigenen, eindeutigen Schlüssel oder einen Hauptschlüssel innerhalb einer Funktions-App verfügt. Verwaltete Identitäten bieten sicheren Zugriff auf die gesamte Funktions-App. Der Benutzer muss den Schlüssel für den Zugriff auf den Funktionsnamen angeben. Weitere Informationen finden Sie in der Funktionsdokumentation zum Schlüssel für den Funktionszugriff.

Eigenschaft Beschreibung Erforderlich
type Die type-Eigenschaft muss auf Folgendes festgelegt werden: AzureFunction Ja
Funktions-App-URL URL für die Azure-Funktions-App. Das Format lautet https://<accountname>.azurewebsites.net. Diese URL ist der Wert unter dem Abschnitt URL, wenn Sie Ihre Funktions-App im Azure-Portal anzeigen. Ja
Funktionsschlüssel Der Zugriffsschlüssel für die Azure-Funktion. Klicken Sie in den Abschnitt Verwalten der jeweiligen Funktion, und kopieren Sie entweder den Funktionsschlüssel oder den Hostschlüssel. Weitere Informationen finden Sie hier: HTTP-Trigger und -Bindungen in Azure Functions Ja
Authentifizierung Die Authentifizierungsmethode, die für den Aufruf der Azure-Funktion verwendet wird. Die unterstützten Werte sind „Systemseitig zugewiesene verwaltete Identität“ oder „Anonym“. Ja
Ressourcen-ID Die App-ID (Client-ID) der Azure-Funktion. Wechseln Sie für die jeweilige Funktion zum Abschnitt Authentifizierung, und rufen Sie die App-ID (Client-ID) unter Identitätsanbieter ab. Diese Eigenschaft wird angezeigt, wenn Sie eine systemseitig zugewiesene verwaltete Identität verwenden. Weitere Informationen finden Sie unter Konfigurieren Ihrer App Service- oder Azure Functions-App für die Verwendung der Microsoft Entra-Anmeldung. Nein

Hinweis

Wenn Sie die anonyme Authentifizierung verwenden, stellen Sie sicher, dass Sie Ihre Identität auf der Seite der Azure-Funktion deaktiviert haben.

Aktivität „Azure Function“

Eigenschaft Beschreibung Zulässige Werte Erforderlich
Name Name der Aktivität in der Pipeline String Ja
type Typ der Aktivität ist „AzureFunctionActivity“ String Ja
Verknüpfter Dienst Der mit der Azure-Funktion verknüpfte Dienst für die entsprechende Azure-Funktions-App Verweis auf den verknüpften Dienst Ja
Funktionsname Name der Funktion in der Azure-Funktions-App, die diese Aktivität aufruft. String Ja
Methode REST-API-Methode für den Funktionsaufruf Zeichenfolgenunterstützte Typen: GET, POST, PUT Ja
Header Header, die in der Anforderung gesendet werden. So legen Sie beispielsweise die Sprache und den Typ für eine Anforderung fest: "headers": { "Accept-Language": "en-us", "Content-Type": "application/json" } Zeichenfolge (oder ein Ausdruck mit resultType der Zeichenfolge) Nein
Text Text, der zusammen mit der Anforderung an die API-Methode der Funktion gesendet wird Zeichenfolge (oder Ausdruck mit resultType der Zeichenfolge) oder Objekt. Erforderlich für PUT/POST-Methoden

Weitere Informationen finden Sie in den Details zum Schema der Anforderungsnutzlast im Abschnitt Schema der Anforderungsnutzlast.

Routing und Abfragen

Die Azure-Funktionsaktivität unterstützt Routing. Wenn Ihre Azure-Funktion z. B. den Endpunkt https://functionAPP.azurewebsites.net/api/<functionName>/<value>?code=<secret> aufweist, dann ist der in der Azure-Funktionsaktivität zu verwendende Funktionsname (functionName) entsprechend <functionName>/<value>. Sie können diese Funktion parametrisieren, um zur Laufzeit den gewünschten functionName bereitzustellen.

Hinweis

Der Funktionsname (functionName) für Durable Functions sollte aus der Eigenschaft route der Funktionsbindung in der JSON-Definition übernommen werden, um die Routinginformationen einzuschließen. Die Verwendung von functionName ohne die enthaltenen Routendetails führt zu einem Fehler, da die Funktions-App nicht gefunden werden kann.

Die Azure-Funktionsaktivität unterstützt auch Abfragen. Eine Abfrage muss als Teil von functionName einbezogen werden. Wenn der Funktionsname z. B. HttpTriggerCSharp lautet und die einzubeziehende Abfrage name=hello ist, dann können Sie den functionName in der Azure-Funktionsaktivität als HttpTriggerCSharp?name=hello konstruieren. Diese Funktion kann parametrisiert werden, sodass der Wert zur Laufzeit bestimmt werden kann.

Timeout und zeitintensive Funktionen

Azure Functions erreicht nach 230 Sekunden den Timeout, unabhängig von der Einstellung functionTimeout, die Sie in den Einstellungen vorgenommen haben. hier finden Sie weitere Informationen Um dieses Verhalten zu umgehen, folgen Sie einem asynchronen Muster oder verwenden Sie Durable Functions. Der Vorteil von Durable Functions besteht darin, dass ein eigener Mechanismus für die Zustandsnachverfolgung bereitgestellt wird, sodass Sie keine eigene Statusnachverfolgung implementieren müssen.

Weitere Informationen zu Durable Functions finden Sie in diesem Artikel. Sie können eine Azure-Funktionsaktivität einrichten, um Durable Function aufzurufen, das eine Antwort mit einer anderen URI zurückgibt, wie z. B. dieses Beispiel. Da statusQueryGetUri den HTTP-Status 202 zurückgibt, während die Funktion ausgeführt wird, können Sie den Status der Funktion mithilfe einer Webaktivität abfragen. Richten Sie eine Webaktivität ein, bei der das Feld url auf @activity('<AzureFunctionActivityName>').output.statusQueryGetUri festgelegt ist. Wenn Durable Function abgeschlossen ist, entspricht die Ausgabe der Funktion der Ausgabe der Webaktivität.

Beispiel

Hier finden Sie ein Beispiel, in dem mithilfe einer Azure-Funktion der Inhalt einer TAR-Datei extrahiert wird.

Weitere Informationen zu den unterstützten Aktivitäten finden Sie in Pipelines und Aktivitäten.