Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 alles ab, von der Datenverschiebung bis hin zu Data Science, Echtzeit-Analysen, Business Intelligence und Reporting. 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:
Erweitern Sie im Bereich „Aktivitäten“ der Pipeline den Abschnitt „Azure Functions“, und ziehen Sie eine Azure Functions-Aktivität in den Pipelinebereich.
Wählen Sie die neue Azure-Funktionsaktivität auf der Canvas aus, wenn sie noch nicht ausgewählt ist, und deren Registerkarte "Einstellungen ", um die Details zu bearbeiten.
Wenn Sie noch keinen verknüpften Azure Function-Dienst definiert haben, wählen Sie "Neu" aus, um eine neue 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.
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. (Denken Sie daran, dass JArraykeinJObject ist.) Jeder andere Rückgabetyp als JObject schlägt fehl und löst den Benutzerfehler Antwortinhalt ist kein gültiges JObject aus.
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.
| Property | 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. Wählen Sie den Abschnitt "Verwalten" für die jeweilige Funktion aus, und kopieren Sie entweder den Funktionsschlüssel oder den Hostschlüssel. Weitere Informationen finden Sie hier: Arbeiten mit Zugriffsschlüsseln | Ja |
| Authentifizierung | Die Authentifizierungsmethode, die für den Aufruf der Azure-Funktion verwendet wird. Die unterstützten Werte sind vom System 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 vom System 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* |
/* Die resourceId Eigenschaft ist erforderlich, wenn Sie die vom System zugewiesene verwaltete Identitätsauthentifizierung verwenden.
Authentifizierung mit systemseitig zugewiesener verwalteter Identität
Sie können die vom System zugewiesene verwaltete Identität (SAMI)-Authentifizierung auf zwei Arten verwenden:
Legen Sie die Ressourcen-ID auf
https://management.azure.com. Data Factory stellt eine Verbindung mit der Funktions-App mithilfe der vom System zugewiesenen verwalteten Identität und führt die Funktions-App mit anonymer Authentifizierung aus.Konfigurieren Sie für sichere Umgebungen, in denen Sie keine anonyme Authentifizierung verwenden möchten, einen Dienstprinzipalnamen (Service Principal Name, SPN) als Ressourcen-ID. Der SPN muss in der Function App ordnungsgemäß konfiguriert werden.
Erstellen Sie eine neue App-Registrierung als Dienstprinzipalidentität.
Wechseln Sie in Ihrer Funktions-App unter "Einstellungen" zum Abschnitt "Authentifizierung", und erstellen Sie einen Identitätsanbieter.
Fügen Sie die Anwendungs-ID des Dienstprinzipals in der Zulässigen Clientanwendung und die Objekt-ID des Dienstprinzipals in den Zulässigen Objektanwendungen hinzu. Wenn die Anfragen nur von bestimmten Mandanten zugelassen sind, fügen Sie die Mandanten-ID der verwalteten Identität im letzten Feld hinzu.
Azure-Funktionsaktivität
| Property | Beschreibung | Zulässige Werte | Erforderlich |
|---|---|---|---|
| Name | Name der Aktivität in der Pipeline | String | Ja |
| type | Aktivitätstyp 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 |
| Body | 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 einfache Verwendung der 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.
Verwandte Inhalte
Weitere Informationen zu den unterstützten Aktivitäten finden Sie in Pipelines und Aktivitäten.