Connector extension for Azure Functions overview (Preview)

Connector-tillägget låter en Azure Functions-app ta emot händelser från hanterade connectors i Azure Connector-namnrymden, vilket ger förbyggd åtkomst till tjänster som Office 365 Outlook, SharePoint Online, Microsoft Teams, Dataverse och många andra Microsoft- och tredjepartstjänster. För att utforska tillgängliga hanterade kontakter, se referensen för kontakter.

Important

Connector-tillägget är för närvarande i offentlig förhandsvisning. Funktioner, konfigurationsnamn och stödda kontakter kan ändras innan allmän tillgänglighet (GA). Användning av denna funktion omfattas av de tilläggsvillkoren för Microsoft Azure Previews.

Note

Connector-triggern stöds för närvarande inte för detta språk.

Action Type
Kör en funktion när en händelse inträffar i en ansluten tjänst Trigger

Connector-tillägget tillhandahåller den inkommande triggerbindningen som kör en funktion när en händelse inträffar i en tjänst som är ansluten via en hanterad koppling. För att anropa operationer och utföra åtgärder i dessa anslutna tjänster från din funktionskod, använd ett Azure Connectors SDK, som för närvarande finns tillgängligt för .NET, Node.jsoch Python. För mer information om triggers, SDK-åtgärder och när man ska använda managed connectors, se Use managed connectors in Azure Functions.

Hur förlängningen fungerar

En kontaktutlöst funktion använder dessa komponenter:

Component Ansvar
Namnområde för anslutningsapp Värdar hanterar anslutningar och triggar konfigurationer.
Hanterad anslutning Autentiserar mot den externa tjänsten och hanterar tjänstespecifik anslutning.
Utlösarkonfiguration Väljer konnektorshändelsen och operationsparametrarna och mappar händelsen till en destinationsfunktion.
Anslutningsförlängning Registrerar callback-endpointen, validerar HTTP-metoden, innehållstypen och JSON-kroppen, skickar förfrågan till den valda funktionen och binder händelsekroppen till funktionsparametern.
Azure Connectors SDK Tillhandahåller valfria starkt typade nyttolastmodeller och klienter för att anropa hanterade anslutningsoperationer, såsom att skicka ett e-postmeddelande eller skapa en SharePoint-fil.

När en konfigurerad händelse inträffar skickar Connector Namespace händelsen till tilläggets webhook-endpoint. Tillägget använder frågesträngsvärdet functionName för att välja funktionen och skickar JSON-händelsekroppen till triggerparametern. Funktionsvärden validerar systemnyckeln innan tillägget behandlar förfrågan, om du inte konfigurerar ett annat autentiseringslager som beskrivs i Authenticate callbacks.

I en .NET-isolerad arbetsfunktion, applicera [ConnectorTrigger] på parametern som tar emot händelsekroppen.

Installera tillägget

Connector-triggern stöder .NET-modellen för isolerad arbetare. För information om stödda .NET-versioner i Azure Functions-runtime-versioner, se Språk efter runtime-version.

Lägg till förhandsversionen av Connector-tilläggspaketet till ditt projekt:

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Connector --prerelease

För att använda starkt typade payload-modeller eller anropshanterade connector-operationer, lägg även till förhandsversionen av Azure Connectors SDK:

dotnet add package Azure.Connectors.Sdk --prerelease

För aktuella paketversioner och kompletta projekt, se Azure Functions-anslutningsexemplen för .NET.

Installera tillägget

Installera paketen som används av Connector-triggern:

npm install @azure/functions @azure/functions-extensions-connectors @azure/connectors

Dessa paket tillhandahåller följande funktionalitet:

Konfigurera din app att använda version 4.42.0 eller senare av förhandsvisningstilläggspaketet i host.json-filen :

{
  "version": "2.0",
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
    "version": "[4.42.*, 5.0.0)"
  }
}

För aktuella paketversioner och kompletta projekt, se Azure Functions-connectorexemplen för TypeScript.

Installera tillägget

Använd Python v2-programmeringsmodellen och installera de paket som krävs av Connector-triggern:

azure-functions>=2.2.0
azurefunctions-extensions-connectors

Note

För Python-versioner tidigare än 3.13, använd azure-functions>=1.26.0b3.

Core azure-functions Python-biblioteket kan binda trigger-payloaden till str, dict, eller bytes. Paketet azurefunctions-extensions-connectors integrerar Azure Connectors SDK för Python och registrerar ytterligare konverterare för de operationspecifika SDK-annotationer som det stödjer.

Konfigurera din app att använda version 4.42.0 eller senare av förhandsvisningstilläggspaketet i host.json-filen :

{
  "version": "2.0",
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
    "version": "[4.42.*, 5.0.0)"
  }
}

För aktuella paketversioner och kompletta projekt, se Azure Functions-connectorexemplen för Python.

Bindningstyper

Connector-triggern stöder dessa parametertyper för .NET-isolerade arbetsfunktioner:

Type Description
string Tar emot eventkroppen som rå JSON. Använd denna typ när en starkt typad SDK-modell inte finns tillgänglig eller när du vill deserialisera payloaden själv.
Connector SDK-modellen Deserialiserar JSON-händelsekroppen till den operationspecifika modellen från Azure.Connectors.Sdk, såsom Office365OnNewEmailTriggerPayload eller SharePointOnlineOnNewFileItemsTriggerPayload.
JSON-deserialiserbar POCO Deserialiserar JSON-händelsekroppen till en .NET-typ vars form matchar anslutningens nyttolast genom att använda System.Text.Json.

För kodexempel och funktionsspecifikt nyttolastbeteende, se Connector-triggerreferensen.

För att avgöra vilka connector-operationer som har starkt typade .NET-payload-modeller, se Operations to Azure Functions signature mapping.

Bindningstyper

Basregistreringen connectorTrigger skickar triggerinmatningen till en generisk handlertyp som som standard är unknown. Paketet @azure/functions-extensions-connectors parsar råindatan till en ConnectorTriggerContext<T> med normaliserade payload och items egenskaper, den ursprungliga rawPayload, samt operationsspecifika typade kontexter när det är tillgängligt. För operationer utan typad registrering, använd den generiska kontexten och validera unknown nyttolasten innan du får tillgång till dess innehåll.

För att avgöra vilka kopplingsoperationer som har starkt typade TypeScript-payloadmodeller, se Operations to Azure Functions signature mapping.

Bindningstyper

Connector-triggern stöder dessa Python-parametertyper:

Type Description
str Tar emot händelsekroppen som en JSON-sträng.
dict Tar emot en händelsekropp som arbetaren har tolkat som JSON.
bytes Tar emot händelsekroppen som råbyte.
Stödd Connector SDK-annotering Använder en omvandlare registrerad av azurefunctions-extensions-connectors för att deserialisera händelsekroppen till en eller flera operationsspecifika SDK-modeller.

För att avgöra vilka connector-operationer som har en registrerad typad Python-konverterare och om annotationen representerar ett objekt eller en samling, se Operations to Azure Functions signature mapping. Använd str, dict, eller bytes för operationer som inte har en stödd SDK-annotering.

Konfigurera anslutningsresurser

Innan tillägget kan ta emot en händelse, skapa dessa resurser och konfigurationer:

  1. Ett Connector-namnrymd.
  2. En hanterad anslutning som är auktoriserad för att få tillgång till den externa tjänsten.
  3. En triggerkonfiguration som väljer kontakthändelsen och identifierar destinationsfunktionen.

Triggerkonfigurationen inkluderar den hanterade anslutningen, operationsnamn, operationsparametrar, callback-URL och callback-autentisering. För konfigurationsvärden och instruktioner för att skapa en trigger med Azure CLI eller Connector Namespace-portalen, se Konfigurera triggern.

Autentisera återkopplingar

Som standard skapar Connector-tillägget en funktions-app-systemnyckel som heter connector_extension. Hämta nyckeln genom att köra:

az functionapp keys list \
    --resource-group <RESOURCE_GROUP> \
    --name <FUNCTION_APP_NAME> \
    --query "systemKeys.connector_extension" \
    --output tsv

Konfigurera callback-URL:en utan nyckeln:

https://<FUNCTION_APP_HOSTNAME>/runtime/webhooks/connector?functionName=<FUNCTION_NAME>

Spara nyckeln separat i notificationDetails.authentication:

{
  "notificationDetails": {
    "callbackUrl": "https://<FUNCTION_APP_HOSTNAME>/runtime/webhooks/connector?functionName=<FUNCTION_NAME>",
    "authentication": {
      "type": "QueryString",
      "name": "code",
      "value": "<CONNECTOR_EXTENSION_KEY>"
    }
  }
}

Vid återkallelse lägger Connector-namnrymden till nyckeln som code frågesträngsparameter. Att hålla nyckeln separat från den sparade callback-URL:en låter portalen maskera den som en hemlighet.

För implementationer som kräver identitetsbaserad återkallelseautentisering, använd App Service inbyggd autentisering med en hanterad identitet istället för en delad systemnyckel. För hela mönstret, se Autentisera dina funktioner till ett connector-namnrymd.

host.json inställningar

Standardautentiseringen av systemnyckeln kräver inte connector-specifika inställningar i host.json-filen .

När App Service-inbyggd autentisering validerar återanrop från connector-namnrymden kan du inaktivera den redundanta systemnyckelkontrollen:

{
  "version": "2.0",
  "extensions": {
    "connector": {
      "system": {
        "webhookAuthorizationLevel": "Anonymous"
      }
    }
  }
}

Använd endast Anonymous när ett annat autentiseringslager, såsom App Service inbyggd autentisering, validerar förfrågningar innan de når Functions-värden.

För en komplett implementation av denna språkoberoende appkonfiguration, se det inbyggda autentiseringsexemplet.

Nästa steg