Anpassade anslutningsappar i Azure Logic Apps

Gäller för: Azure Logic Apps (Förbrukning + Standard)

Utan att skriva någon kod kan du snabbt skapa automatiserade integrationsarbetsflöden när du använder de fördefinierade anslutningsåtgärderna i Azure Logic Apps. En anslutningsapp hjälper dina arbetsflöden att ansluta och komma åt data, händelser och åtgärder i andra appar, tjänster, system, protokoll och plattformar. Varje anslutningsapp erbjuder åtgärder som utlösare, åtgärder eller båda som du kan lägga till i dina arbetsflöden. Med hjälp av dessa åtgärder utökar du funktionerna för dina molnappar och lokala appar så att de fungerar med nya och befintliga data.

Anslutningsappar i Azure Logic Apps är antingen inbyggda eller hanterade. En inbyggd anslutningsapp körs internt på Azure Logic Apps-körningen , vilket innebär att de finns i samma process som körningen och ger högre dataflöde, låg svarstid och lokal anslutning. En hanterad anslutningsapp är en proxy eller en omslutning runt ett API, till exempel Office 365 eller Salesforce, som hjälper den underliggande tjänsten att kommunicera med Azure Logic Apps. Hanterade anslutningsappar drivs av anslutningsinfrastrukturen i Azure och distribueras, hanteras, körs och hanteras av Microsoft. Du kan välja mellan hundratals hanterade anslutningsappar som ska användas med dina arbetsflöden i Azure Logic Apps.

När du använder en anslutningsåtgärd för första gången i ett arbetsflöde kräver vissa anslutningsappar inte att du skapar en anslutning först, men många andra anslutningsappar kräver det här steget. Varje anslutning som du skapar är i själva verket en separat Azure-resurs som ger åtkomst till målappen, tjänsten, systemet, protokollet eller plattformen.

Ibland kanske du vill anropa REST-API:er som inte är tillgängliga som fördefinierade anslutningsappar. För att stödja mer skräddarsydda scenarier kan du skapa egna anpassade anslutningsappar för att erbjuda utlösare och åtgärder som inte är tillgängliga som fördefinierade åtgärder.

Den här artikeln innehåller en översikt över anpassade anslutningsappar för arbetsflöden för förbrukningslogikappar och arbetsflöden för standardlogikappar. Varje typ av logikapp drivs av olika Azure Logic Apps-körningsmiljöer, som finns i Azure med flera klientorganisationer och Azure med en enda klientorganisation. Mer information om anslutningsappar i Azure Logic Apps finns i följande dokumentation:

Logikappar för förbrukning

I Azure Logic Apps för flera klientorganisationer kan du skapa anpassade anslutningsappar från Swagger-baserade eller SOAP-baserade API:er upp till specifika gränser för användning i arbetsflöden för förbrukningslogikappar. Dokumentationen om anslutningsappar innehåller mer översiktsinformation om hur du skapar anpassade anslutningsappar för förbrukningslogikappar, inklusive fullständiga grundläggande och avancerade självstudier. Följande lista innehåller även direkta länkar till information om anpassade anslutningsappar för förbrukningslogikappar:

Standardlogikappar

I Azure Logic Apps med en enda klientorganisation driver den omdesignade Azure Logic Apps-körningen arbetsflöden för standardlogikappar. Den här körningen skiljer sig från Azure Logic Apps-körningen med flera klientorganisationer som driver arbetsflöden för förbrukningslogikappar. Körningen för en klient använder Azure Functions utökningsmodell, som ger dig en viktig funktion för att skapa egna inbyggda anslutningsappar som alla kan använda i Standard-arbetsflöden. I de flesta fall ger den inbyggda versionen bättre prestanda, funktioner, priser och så vidare.

När Azure Logic Apps för en enda klient officiellt släpptes ingår nya inbyggda anslutningsappar Azure Blob Storage, Azure Event Hubs, Azure Service Bus och SQL Server. Med tiden fortsätter den här listan med inbyggda anslutningsappar att växa. Men om du behöver anslutningsappar som inte är tillgängliga i arbetsflöden för standardlogikappar kan du skapa egna inbyggda anslutningsappar med samma utökningsmodell som används av tjänstleverantörsbaserade inbyggda anslutningsappar i Standard-arbetsflöden.

Tjänstleverantörsbaserade inbyggda anslutningsappar

I Azure Logic Apps med en enda klient kallas en inbyggd anslutningsapp med specifika attribut informellt för en tjänstleverantör. Dessa anslutningsappar baseras till exempel på Azure Functions utökningsmodell, som ger dig möjlighet att skapa egna anpassade inbyggda anslutningsappar som ska användas i standardarbetsflöden för logikappar.

Däremot har inbyggda anslutningsappar för icke-tjänstleverantörer följande attribut:

  • Baseras inte på Azure Functions utökningsmodell.

  • Implementeras direkt som ett jobb inom Azure Logic Apps-körningen, till exempel schema-, HTTP-, begäran- och XML-åtgärder.

Det finns för närvarande ingen funktion för att skapa en inbyggd anslutningsapp som inte är en tjänstleverantör eller en ny jobbtyp som körs direkt i Azure Logic Apps-körningen. Du kan dock skapa egna inbyggda anslutningsappar med hjälp av tjänstleverantörens infrastruktur.

I följande avsnitt finns mer information om hur utökningsmodellen fungerar för anpassade inbyggda anslutningsappar.

Inbyggd utökningsmodell för anslutningsprogram

Baserat på Azure Functions utökningsmodell har den inbyggda utökningsmodellen för anslutningsappar i Azure Logic Apps med en enda klient en tjänstleverantörsinfrastruktur som du kan använda för att skapa, paketera, registrera och installera dina egna inbyggda anslutningsappar som Azure Functions tillägg som vem som helst kan använda i sina standardarbetsflöden. Den här modellen innehåller anpassade inbyggda utlösarfunktioner som stöder exponering av en Azure Functions utlösare eller åtgärd som en tjänstleverantörsutlösare i din anpassade inbyggda anslutningsapp.

Följande diagram visar de metodimplementeringar som Azure Logic Apps-designern och körningen förväntar sig för en anpassad inbyggd anslutningsapp med en Azure Functions-baserad utlösare:

Konceptuellt diagram som visar Azure Functions-baserad tjänstleverantörsinfrastruktur.

Följande avsnitt innehåller mer information om de gränssnitt som anslutningsappen behöver implementera.

IServiceOperationsProvider

Det här gränssnittet innehåller de metoder som tillhandahåller åtgärdsmanifestet för din anpassade inbyggda anslutningsapp.

  • Åtgärdsmanifest

    Åtgärdsmanifestet innehåller metadata om de implementerade åtgärderna i din anpassade inbyggda anslutningsapp. Azure Logic Apps-designern använder främst dessa metadata för att driva redigerings- och övervakningsupplevelserna för anslutningsappens åtgärder. Designern använder till exempel åtgärdsmetadata för att förstå de indataparametrar som krävs av en specifik åtgärd och för att underlätta genereringen av utdatas egenskapstoken baserat på schemat för åtgärdens utdata.

    Designern kräver och använder metoderna GetService() och GetOperations() för att köra frågor mot de åtgärder som anslutningsappen tillhandahåller och visar på designerytan. Metoden GetService() anger också anslutningens indataparametrar som krävs av designern.

    Mer information om dessa metoder och deras implementering finns i avsnittet Metoder att implementera senare i den här artikeln.

  • Åtgärdsanrop

    Åtgärdsanrop är de metodimplementeringar som används vid arbetsflödeskörning av Azure Logic Apps-körningen för att anropa de angivna åtgärderna i arbetsflödesdefinitionen.

    • Om utlösaren är en Azure Functions-baserad utlösartyp används metoden GetBindingConnectionInformation() av körningen i Azure Logic Apps för att tillhandahålla nödvändig anslutningsparametrar till Azure Functions utlösarbindning.

    • Om anslutningsappen har åtgärder används metoden InvokeOperation() av körningen för att anropa varje åtgärd i anslutningsappen som körs under arbetsflödeskörningen. Annars behöver du inte implementera den här metoden.

Mer information om dessa metoder och deras implementering finns i avsnittet Metoder att implementera senare i den här artikeln.

IServiceOperationsTriggerProvider

Anpassade inbyggda utlösarfunktioner har stöd för att lägga till eller exponera en Azure Functions utlösare eller åtgärd som en tjänstleverantörsutlösare i din anpassade inbyggda anslutningsapp. Om du vill använda den Azure Functions-baserade utlösartypen och samma Azure Functions bindning som Utlösaren för azure-hanterad anslutningsapp implementerar du följande metoder för att tillhandahålla anslutningsinformation och utlösa bindningar som krävs av Azure Functions.

  • Metoden GetFunctionTriggerType() krävs för att returnera strängen som är samma som typparametern i Azure Functions utlösarbindning.

  • GetFunctionTriggerDefinition() har en standardimplementering, så du behöver inte uttryckligen implementera den här metoden. Men om du vill uppdatera utlösarens standardbeteende, till exempel tillhandahålla extra parametrar som designern inte exponerar, kan du implementera den här metoden och åsidosätta standardbeteendet.

Metoder för att implementera

Följande avsnitt innehåller mer information om de metoder som anslutningsappen behöver implementera. Det fullständiga exemplet finns i Exempel på CosmosDbServiceOperationProvider.cs och Skapa anpassade inbyggda anslutningsappar för standardlogikappar i Azure Logic Apps med en enda klientorganisation.

GetService()

Designern kräver den här metoden för att få metadata på hög nivå för din tjänst, inklusive tjänstbeskrivning, parametrar för anslutningsindata, funktioner, varumärkesfärg, ikon-URL och så vidare.

public ServiceOperationApi GetService()
{
   return this.{custom-service-name-apis}.ServiceOperationServiceApi();
}

Mer information finns i Exempel på CosmosDbServiceOperationProvider.cs.

GetOperations()

Designern kräver den här metoden för att få de åtgärder som implementeras av din tjänst. Åtgärdslistan baseras på Swagger-schemat. Designern använder också åtgärdsmetadata för att förstå indataparametrarna för specifika åtgärder och generera utdata som egenskapstoken, baserat på schemat för utdata för en åtgärd.

public IEnumerable<ServiceOperation> GetOperations(bool expandManifest)
{
   return expandManifest ? serviceOperationsList : GetApiOperations();
}

Mer information finns i Exempel på CosmosDbServiceOperationProvider.cs.

GetBindingConnectionInformation()

Om du vill använda den Azure Functions-baserade utlösartypen tillhandahåller den här metoden information om nödvändiga anslutningsparametrar till Azure Functions utlösarbindning.

public string GetBindingConnectionInformation(string operationId, InsensitiveDictionary<JToken> connectionParameters)
{
   return ServiceOperationsProviderUtilities
      .GetRequiredParameterValue(
         serviceId: ServiceId,
         operationId: operationID,
         parameterName: "connectionString",
         parameters: connectionParameters)?
      .ToValue<string>();
}

Mer information finns i Exempel på CosmosDbServiceOperationProvider.cs.

InvokeOperation()

Om din anpassade inbyggda anslutningsapp bara har en utlösare behöver du inte implementera den här metoden. Men om anslutningsappen har åtgärder att implementera måste du implementera metoden InvokeOperation(), som anropas för varje åtgärd i anslutningsappen som körs under arbetsflödeskörningen. Du kan använda valfri klient, till exempel FTPClient, HTTPClient och så vidare, enligt vad som krävs av anslutningsappens åtgärder. I det här exemplet används HTTPClient.

public Task<ServiceOperationResponse> InvokeOperation(string operationId, InsensitiveDictionary<JToken> connectionParameters, ServiceOperationRequest serviceOperationRequest)
{
   using (var client = new HttpClient())
   {
      response = client.SendAsync(httpRequestMessage).ConfigureAwait(false).ToJObject();
   }
   return new ServiceOperationResponse(body: response);
}

Mer information finns i Exempel på CosmosDbServiceOperationProvider.cs.

GetFunctionTriggerType()

Om du vill använda en Azure Functions-baserad utlösare som utlösare i anslutningsappen måste du returnera strängen som är samma som typparametern i Azure Functions-utlösarbindningen.

I följande exempel returneras strängen för den inbyggda Azure Cosmos DB-utlösaren out-of-the-box, "type": "cosmosDBTrigger":

public string GetFunctionTriggerType()
{
   return "CosmosDBTrigger";
}

Mer information finns i Exempel på CosmosDbServiceOperationProvider.cs.

GetFunctionTriggerDefinition()

Den här metoden har en standardimplementering, så du behöver inte uttryckligen implementera den här metoden. Men om du vill uppdatera utlösarens standardbeteende, till exempel tillhandahålla extra parametrar som designern inte exponerar, kan du implementera den här metoden och åsidosätta standardbeteendet.

Nästa steg

När du är redo att starta implementeringsstegen fortsätter du till följande artikel: