DevOps-implementatie instellen voor standaardwerkstromen voor logische apps in Azure Logic Apps met één tenant
Van toepassing op: Azure Logic Apps (Standard)
In dit artikel wordt beschreven hoe u een Standaard logische app-project implementeert in Azure Logic Apps met één tenant van Visual Studio Code in uw infrastructuur met behulp van DevOps-hulpprogramma's en -processen. Kies op basis van of u de voorkeur geeft aan GitHub of Azure DevOps voor implementatie het pad en de hulpprogramma's die het beste werken voor uw scenario. U kunt de opgenomen voorbeelden gebruiken die voorbeelden van logische app-projecten bevatten plus voorbeelden voor Azure-implementatie met behulp van GitHub of Azure DevOps. Raadpleeg het devOps-implementatieoverzicht voor Azure Logic Apps met één tenant voor meer informatie over DevOps voor één tenant.
Vereisten
Een Azure-account met een actief abonnement. Als u nog geen Azure-abonnement hebt, maakt u een gratis account.
Een standaard logische app-project dat is gemaakt met Visual Studio Code en de Azure Logic Apps-extensie (Standard).
Als u uw logische app-project of -infrastructuur nog niet hebt ingesteld, kunt u de opgenomen voorbeeldprojecten gebruiken om een voorbeeld-app en infrastructuur te implementeren op basis van de bron- en implementatieopties die u liever gebruikt. Zie Uw infrastructuur implementeren voor meer informatie over deze voorbeeldprojecten en de resources die zijn opgenomen om de logische voorbeeld-app uit te voeren.
Als u wilt implementeren in Azure, hebt u een bestaande logische app-resource (Standard) nodig die is gemaakt in Azure. Als u snel een lege logische app-resource wilt maken, raadpleegt u Werkstromen voor logische apps met één tenant maken - Portal.
Infrastructuurbronnen implementeren
Als u nog geen logische app-project of infrastructuur hebt ingesteld, kunt u de volgende voorbeeldprojecten gebruiken om een voorbeeld-app en infrastructuur te implementeren op basis van de bron- en implementatieopties die u wilt gebruiken:
GitHub-voorbeeld voor Azure Logic Apps met één tenant
Dit voorbeeld bevat een voorbeeld van een logische app-project voor Azure Logic Apps met één tenant plus voorbeelden voor Azure-implementatie en GitHub Actions.
Azure DevOps-voorbeeld voor Azure Logic Apps met één tenant
Dit voorbeeld bevat een voorbeeld van een logic app-project voor Azure Logic Apps met één tenant plus voorbeelden voor Azure-implementatie en Azure Pipelines.
Beide voorbeelden bevatten de volgende resources die een logische app gebruikt om uit te voeren.
Resourcenaam | Vereist | Beschrijving |
---|---|---|
Logische app (standaard) | Ja | Deze Azure-resource bevat de werkstromen die worden uitgevoerd in Azure Logic Apps met één tenant. |
Functions Premium- of App Service-hostingabonnement | Ja | Deze Azure-resource geeft de hostingresources op die moeten worden gebruikt voor het uitvoeren van uw logische app, zoals compute, verwerking, opslag, netwerken, enzovoort. Belangrijk: In de huidige ervaring vereist de logic app-resource (Standard) het Workflow Standard-hostingplan, dat is gebaseerd op het Functions Premium-hostingabonnement. |
Azure-storageaccount | Ja, voor stateful en stateless werkstromen | Deze Azure-resource slaat de metagegevens, sleutels voor toegangsbeheer, status, invoer, uitvoer, uitvoeringsgeschiedenis en andere informatie over uw werkstromen op. |
Analyses van toepassingen | Optioneel | Deze Azure-resource biedt bewakingsmogelijkheden voor uw werkstromen. |
API-verbindingen | Optioneel, als er geen bestaat | Deze Azure-resources definiëren alle beheerde API-verbindingen die door uw werkstromen worden gebruikt voor het uitvoeren van beheerde connectorbewerkingen, zoals Office 365, SharePoint, enzovoort. Belangrijk: In uw logische app-project bevat het connections.json bestand metagegevens, eindpunten en sleutels voor beheerde API-verbindingen en Azure-functies die door uw werkstromen worden gebruikt. Als u verschillende verbindingen en functies in elke omgeving wilt gebruiken, moet u ervoor zorgen dat u het connections.json-bestand parameteriseert en de eindpunten bijwerkt. Raadpleeg api-verbindingsresources en toegangsbeleid voor meer informatie. |
Azure Resource Manager (ARM)-sjabloon | Optioneel | Deze Azure-resource definieert een basislijninfrastructuurimplementatie die u opnieuw kunt gebruiken of exporteren. |
API-verbindingsbronnen en toegangsbeleid
In Azure Logic Apps met één tenant is voor elke beheerde of API-verbindingsresource in uw werkstromen een gekoppeld toegangsbeleid vereist. Dit beleid heeft de identiteit van uw logische app nodig om de juiste machtigingen te bieden voor toegang tot de infrastructuur van de beheerde connector. De opgenomen voorbeeldprojecten bevatten een ARM-sjabloon met alle benodigde infrastructuurbronnen, waaronder dit toegangsbeleid.
In het volgende diagram ziet u de afhankelijkheden tussen uw logische app-project en infrastructuurbronnen:
Resources voor logische apps implementeren (zip deploy)
Nadat u uw logische app-project naar uw bronopslagplaats hebt gepusht, kunt u build- en release-pijplijnen instellen binnen of buiten Azure die logische apps implementeren in de infrastructuur.
Uw project bouwen
Als u een build-pijplijn wilt instellen op basis van het projecttype van uw logische app, moet u de bijbehorende acties in de volgende tabel uitvoeren:
Projecttype | Beschrijving en stappen |
---|---|
Op Nuget gebaseerd | De projectstructuur op basis van NuGet is gebaseerd op .NET Framework. Als u deze projecten wilt bouwen, moet u de buildstappen voor .NET Standard volgen. Raadpleeg de documentatie voor Een NuGet-pakket maken met BEHULP van MSBuild voor meer informatie. |
Op bundel gebaseerd | Het op uitbreidingsbundel gebaseerde project is niet taalspecifiek en vereist geen taalspecifieke buildstappen. U kunt elke methode gebruiken om uw projectbestanden te zippen. Belangrijk: Zorg ervoor dat uw .zip bestand de werkelijke buildartefacten bevat, inclusief alle werkstroommappen, configuratiebestanden zoals host.json, connections.json en andere gerelateerde bestanden. |
Voordat u azure vrijgeeft
De beheerde API-verbindingen in het connections.json-bestand van uw logische app-project worden specifiek gemaakt voor lokaal gebruik in Visual Studio Code. Voordat u uw projectartefacten van Visual Studio Code naar Azure kunt vrijgeven, moet u deze artefacten bijwerken. Als u de beheerde API-verbindingen in Azure wilt gebruiken, moet u hun verificatiemethoden bijwerken, zodat ze de juiste indeling hebben voor gebruik in Azure.
Verificatietype bijwerken
Voor elke beheerde API-verbinding die gebruikmaakt van verificatie, moet u het verificatieobject bijwerken van de lokale indeling in Visual Studio Code naar de Azure Portal-indeling, zoals wordt weergegeven in respectievelijk de eerste en tweede codevoorbeelden:
Visual Studio Code-indeling
{
"managedApiConnections": {
"sql": {
"api": {
"id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/providers/Microsoft.Web/locations/westus/managedApis/sql"
},
"connection": {
"id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/ase/providers/Microsoft.Web/connections/sql-8"
},
"connectionRuntimeUrl": "https://xxxxxxxxxxxxxx.01.common.logic-westus.azure-apihub.net/apim/sql/xxxxxxxxxxxxxxxxxxxxxxxxx/",
"authentication": {
"type": "Raw",
"scheme": "Key",
"parameter": "@appsetting('sql-connectionKey')"
}
}
}
Azure Portal-indeling
{
"managedApiConnections": {
"sql": {
"api": {
"id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/providers/Microsoft.Web/locations/westus/managedApis/sql"
},
"connection": {
"id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/ase/providers/Microsoft.Web/connections/sql-8"
},
"connectionRuntimeUrl": "https://xxxxxxxxxxxxxx.01.common.logic-westus.azure-apihub.net/apim/sql/xxxxxxxxxxxxxxxxxxxxxxxxx/",
"authentication": {
"type": "ManagedServiceIdentity",
}
}
}
API-verbindingen maken indien nodig
Als u uw werkstroom voor logische apps implementeert in een Azure-regio of een ander abonnement dan uw lokale ontwikkelomgeving, moet u er ook voor zorgen dat u deze beheerde API-verbindingen maakt voordat deze worden geïmplementeerd. Implementatie van Azure Resource Manager-sjablonen (ARM-sjabloon) is de eenvoudigste manier om beheerde API-verbindingen te maken.
In het volgende voorbeeld ziet u een definitie van een resourcedefinitie voor beheerde API-verbindingen in een ARM-sjabloon:
{
"type": "Microsoft.Web/connections",
"apiVersion": "2016–06–01",
"location": "[parameters('location')]",
"name": "[parameters('connectionName')]",
"properties": {
"displayName": "sqltestconnector",
"api": {
"id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/sql"
},
"parameterValues": {
"authType": "windows",
"database": "TestDB",
"password": "TestPassword",
"server": "TestServer",
"username": "TestUserName"
}
}
}
Als u de waarden wilt vinden die u moet gebruiken in het eigenschappenobject voor het voltooien van de definitie van de verbindingsresource, kunt u de volgende API gebruiken voor een specifieke connector:
GET https://management.azure.com/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/{connector-name}?api-version=2016-06-01
Zoek in het antwoord het connectionParameters-object , dat de benodigde informatie bevat om de resourcedefinitie voor die specifieke connector te voltooien. In het volgende voorbeeld ziet u een voorbeeld van een resourcedefinitie voor een met SQL beheerde verbinding:
{
"type": "Microsoft.Web/connections",
"apiVersion": "2016–06–01",
"location": "[parameters('location')]",
"name": "[parameters('connectionName')]",
"properties": {
"displayName": "sqltestconnector",
"api": {
"id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/sql"
},
"parameterValues": {
"authType": "windows",
"database": "TestDB",
"password": "TestPassword",
"server": "TestServer",
"username": "TestUserName"
}
}
}
Als alternatief kunt u de netwerktracering vastleggen en controleren voor wanneer u een verbinding maakt met behulp van de werkstroomontwerper in Azure Logic Apps. Zoek de PUT
aanroep die wordt verzonden naar de beheerde API van de connector, zoals eerder beschreven, en controleer de aanvraagbody voor alle benodigde informatie.
Resourcedefinitie voor on-premises gegevensgateway
Als uw verbinding gebruikmaakt van een on-premises gegevensgatewayresource, bestaat deze resourcedefinitie afzonderlijk van de resourcedefinitie van de connector. Als u de resourcedefinitie van de gegevensgateway wilt weergeven, raadpleegt u De implementatie voor Azure Logic Apps automatiseren met behulp van Azure Resource Manager-sjablonen en Microsoft.Web connectionGateways.
Release naar Azure
Als u een release-pijplijn wilt instellen die in Azure wordt geïmplementeerd, volgt u de bijbehorende stappen voor GitHub, Azure DevOps of Azure CLI.
Notitie
Azure Logic Apps biedt momenteel geen ondersteuning voor Azure-implementatiesites.
Voor GitHub-implementaties kunt u uw logische app implementeren met behulp van GitHub Actions, bijvoorbeeld de GitHub Actions in Azure Functions. Voor deze actie moet u de volgende informatie doorgeven:
- De naam van de logische app die moet worden gebruikt voor implementatie
- Het zip-bestand met uw werkelijke buildartefacten, inclusief alle werkstroommappen, configuratiebestanden zoals host.json, connections.json en andere gerelateerde bestanden.
- Uw publicatieprofiel, dat wordt gebruikt voor verificatie
- name: 'Run Azure Functions Action'
uses: Azure/functions-action@v1
id: fa
with:
app-name: 'MyLogicAppName'
package: 'MyBuildArtifact.zip'
publish-profile: 'MyLogicAppPublishProfile'
Raadpleeg voor meer informatie de continue levering met behulp van gitHub Action-documentatie .
Na de release van Azure
Elke API-verbinding heeft toegangsbeleid. Nadat de zip-implementatie is voltooid, moet u de resource van uw logische app openen in Azure Portal en toegangsbeleid maken voor elke API-verbinding om machtigingen voor de geïmplementeerde logische app in te stellen. Met de zip-implementatie worden geen app-instellingen voor u gemaakt. Na de implementatie moet u deze app-instellingen maken op basis van het local.settings.json-bestand in uw lokale Visual Studio Code-project.
Volgende stappen
We willen graag meer weten over uw ervaringen met azure Logic Apps met één tenant.
- Voor bugs of problemen maakt u uw problemen in GitHub.
- Gebruik dit feedbackformulier voor vragen, aanvragen, opmerkingen en andere feedback.