Guide för distributionskonfiguration
ALM Accelerator for Power Platform använder konfigurationsfilerna i JSON-format för att automatisera distributionen av lösningarna. De ställer in anslutningsreferenser, miljövariabler och behörigheter, delar arbetsyteappar och uppdaterar ägarskap till lösningskomponenter som t.ex. Power Automate flöden när lösningar distribueras till nedströmsmiljöer.
Med konfigurationsfilerna i den här artikeln kan du konfigurera objekt som är specifika för den miljö som en lösning distribueras till. Konfigurationsfilerna du behöver, och därmed de steg som du måste följa i den här artikeln, beror på vilka komponenter lösningspipelinen distribuerar. Om lösningen exempelvis endast innehåller Dataverse tabeller och modellstyrda program utan att det krävs någon konfiguration per miljö eller data, kanske vissa av dessa steg inte är nödvändiga och kan hoppa över.
Vi ger exempel på konfigurationsfil i ALMAcceleratorSampleSolution distributionsinställningar och anpassade distributionsinställningar
Innan du börjar
Den här artikeln är en steg-för-steg-guide för att konfigurera distributionskonfigurationsfiler manuellt. Det innehåller information och sammanhang för de åtgärder som utförs av ALM Accelerator-app och pipelines och fungerar som referens för administratörer som vill veta detaljerna i varje steg i processen.
Vi rekommenderar dock att du konfigurerar distributionsinställningar i appen ALM Accelerator.
Skapa en JSON-fil för distributionsinställningar
När du lagrar filen customDeploymentSettings.json i roten för config-katalogen gäller samma konfiguration för alla miljöer. Om du antar att du använder pipelineuppgifter för filtransformation eller tokenersättning för information som är specifik för särskilda miljöer, kan du ange värden per miljö i dina pipelinevariabler.
Men du kan också skapa miljöspecifika customDeploymentSettings.json filer. Lagra dem i katalogen config med namn efter miljöerna. Katalognamnet måste matcha variabeln för EnvironmentName
-pipelinen du skapade när du konfigurerade pipelinen för verifiera, testa och produktionsmiljöer. Om inga miljöspecifika distributionsinställningar JSON och katalogen finns återställs pipelines till konfigurationen i roten för katalogen config.
Du kan också skapa användarspecifika konfigurationsfiler som katalogen JohannaDev i den föregående bilden. Utvecklare kan använda dem för att välja en specifik konfiguration när de importerar ohanterade lösningar från källkontroll.
JSON-filen för distributionsinställningar används för att konfigurera anslutningsreferenser och miljövariabler.
{
"EnvironmentVariables": [
{
"SchemaName": "cat_shared_sharepointonline_97456712308a4e65aae18bafcd84c81f",
"Value": "#{environmentvariable.cat_shared_sharepointonline_97456712308a4e65aae18bafcd84c81f}#"
},
{
"SchemaName": "cat_shared_sharepointonline_21f63b2d26f043fb85a5c32fc0c65924",
"Value": "#{environmentvariable.cat_shared_sharepointonline_21f63b2d26f043fb85a5c32fc0c65924}#"
},
{
"SchemaName": "cat_TextEnvironmentVariable",
"Value": "#{environmentvariable.cat_TextEnvironmentVariable}#"
},
{
"SchemaName": "cat_ConnectorBaseUrl",
"Value": "#{environmentvariable.cat_ConnectorBaseUrl}#"
},
{
"SchemaName": "cat_DecimalEnvironmentVariable",
"Value": "#{environmentvariable.cat_DecimalEnvironmentVariable}#"
},
{
"SchemaName": "cat_JsonEnvironmentVariable",
"Value": "#{environmentvariable.cat_JsonEnvironmentVariable}#"
},
{
"SchemaName": "cat_ConnectorHostUrl",
"Value": "#{environmentvariable.cat_ConnectorHostUrl}#"
}
],
"ConnectionReferences": [
{
"LogicalName": "new_sharedsharepointonline_b49bb",
"ConnectionId": "#{connectionreference.new_sharedsharepointonline_b49bb}#",
"ConnectorId": "/providers/Microsoft.PowerApps/apis/shared_sharepointonline"
},
{
"LogicalName": "cat_CDS_Current",
"ConnectionId": "#{connectionreference.cat_CDS_Current}#",
"ConnectorId": "/providers/Microsoft.PowerApps/apis/shared_commondataserviceforapps"
}
]
}
Kopiera ovanstående JSON-kodexempel till en ny fil med namnet deploymentSettings.json.
Spara filen i mappen config i Git.
Skapa en anslutningsreferens JSON
Egenskapen i ConnectionReferences
filen customDeploymentConfiguration.json anger anslutningsreferenser i lösningen när lösningen har importerats till en miljö. ConnectionReferences
Aktivera även flöden efter att lösningen har importerats, baserat på ägaren till anslutningen som anges i variabeln.
Skapa anslutningarna manuellt i målmiljöerna.
Kopiera ID:erna för anslutningarna.
Hämta logiskt namn för anslutningsreferens från anslutningsreferenskomponenten i lösningen.
Hämta anslutnings-ID:t från anslutningens URL när du har skapat den. Till exempel om URL är 'https://.../connections/shared_commondataservice/9f66d1d455f3474ebf24e4fa2c04cea2/details', är anslutnings-ID 9f66d1d455f3474ebf24e4fa2c04cea2.
Redigera filen customDeploymentSettings.json och klistra in ID på
ConnectionReferences
egenskapen, som i följande exempelkod:"ConnectionReferences": [ { "LogicalName": "new_sharedsharepointonline_b49bb", "ConnectionId": "#{connectionreference.new_sharedsharepointonline_b49bb}#", "ConnectorId": "/providers/Microsoft.PowerApps/apis/shared_sharepointonline" }, { "LogicalName": "cat_CDS_Current", "ConnectionId": "#{connectionreference.cat_CDS_Current}#", "ConnectorId": "/providers/Microsoft.PowerApps/apis/shared_commondataserviceforapps" } ]
Om du använder tillägget Ersätt token och lägger till token i konfigurationen, t.ex. i exemplet ovan, öppnar du pipelinen för lösningen och väljer sedan Redigera>Variabler.
På skärmen Pipelinevariabler skapa anslutningen <connection_reference_logicalname>. I det här exemplet namnges pipelinevariabeln
connection.cat_CDS_Current
.Ange värdet till det anslutnings-ID du hittade tidigare.
Om du vill kontrollera att värdet inte sparas som oformaterad text väljer du Behåll det här värdet.
Om tillämpligt upprepar du stegen ovan för varje lösning och pipeline du skapar.
Skapa miljövariabeln JSON i distributionskonfigurationsfilen
Egenskapen EnvironmentVariables
i filen customDeploymentConfiguration.json ställer in Dataverse miljövariabler i din lösning efter att lösningen har importerats till en miljö.
Viktigt!
När källkontrollerade lösningar exporteras miljövariabelvärden med lösningen. Detta kan utgöra en säkerhetsrisk när miljövariablerna innehåller känslig information. Vi rekommenderar att du inte lagrar känslig information i miljövariabler. Ett sätt att se till att miljövariabelvärdena inte är källkontrollerade är att skapa en lösning specifikt för miljövariabelvärden i utvecklingsmiljöerna och ange deras värde i den lösningen. På så sätt förhindras de aktuella värdena från att exporteras med lösningens och lagras i källkontrollen.
Kopiera schemanamnet för miljövariabeln från miljövariabelkomponenten i din lösning.
Redigera filen customDeploymentSettings.json och klistra in namnet på
EnvironmentVariables
egenskapen, som i följande exempelkod:{ "EnvironmentVariables": [ { "SchemaName": "cat_TextEnvironmentVariable", "Value": "#{variable.cat_TextEnvironmentVariable}#" }, { "SchemaName": "cat_DecimalEnvironmentVariable", "Value": "#{variable.cat_DecimalEnvironmentVariable}#" }, { "SchemaName": "cat_JsonEnvironmentVariable", "Value": "{\"name\":\"#{variable.cat_JsonEnvironmentVariable.name}#\"}" } ] }
Om du använder tillägget Ersätt token och lägger till token i konfigurationen, t.ex. i exemplet ovan, öppnar du pipelinen för lösningen och väljer sedan Redigera>Variabler.
På skärmen Pipelinevariabler skapa en pipeline pipelinevariabel för varje token i konfigurationen, t.ex. variable.cat_TextEnvironmentVariable.
Ställ in värdet på miljövariabelns värde för den miljön.
Om du vill kontrollera att värdet inte sparas som oformaterad text väljer du Behåll det här värdet.
Om tillämpligt upprepar du stegen ovan för varje lösning och pipeline du skapar.
Skapa en anpassad JSON-fil för distributionsinställningar
JSON-filen för anpassade distributionsinställningar innehåller inställningar som aktiverar flöden på uppdrag av en användare, anger ägarskap till flöden, delar arbetsyteappar med Microsoft Entra-grupper och skapa Dataverse-gruppteam efter distributionen.
{
"ActivateFlowConfiguration": [
{
"solutionComponentName": "DevOpsKitSampleFlow",
"solutionComponentUniqueName": "0a43b549-50ed-ea11-a815-000d3af3a7c4",
"activateAsUser": "#{activateflow.activateas.DevOpsKitSampleFlow}#"
},
{
"solutionComponentName": "CallMeFromCanvasApp",
"solutionComponentUniqueName": "71cc728c-2487-eb11-a812-000d3a8fe6a3",
"activateAsUser": "#{activateflow.activateas.CallMeFromCanvasApp}#"
},
{
"solutionComponentName": "GetEnvironmentVariables",
"solutionComponentUniqueName": "d2f7f0e2-a1a9-eb11-b1ac-000d3a53c3c2",
"activateAsUser": "#{activateflow.activateas.GetEnvironmentVariables}#"
}
],
"SolutionComponentOwnershipConfiguration": [
{
"solutionComponentType": 29,
"solutionComponentName": "DevOpsKitSampleFlow",
"solutionComponentUniqueName": "0a43b549-50ed-ea11-a815-000d3af3a7c4",
"ownerEmail": "#{owner.ownerEmail.DevOpsKitSampleFlow}#"
},
{
"solutionComponentType": 29,
"solutionComponentName": "CallMeFromCanvasApp",
"solutionComponentUniqueName": "71cc728c-2487-eb11-a812-000d3a8fe6a3",
"ownerEmail": "#{owner.ownerEmail.CallMeFromCanvasApp}#"
},
{
"solutionComponentType": 29,
"solutionComponentName": "GetEnvironmentVariables",
"solutionComponentUniqueName": "d2f7f0e2-a1a9-eb11-b1ac-000d3a53c3c2",
"ownerEmail": "#{owner.ownerEmail.GetEnvironmentVariables}#"
}
],
"AadGroupCanvasConfiguration": [
{
"aadGroupId": "#{canvasshare.aadGroupId.DevOpsKitSampleCanvasApp}#",
"canvasNameInSolution": "cat_devopskitsamplecanvasapp_c7ec5",
"canvasDisplayName": "DevOpsKitSampleCanvasApp",
"roleName": "#{canvasshare.roleName.DevOpsKitSampleCanvasApp}#"
}
],
"AadGroupTeamConfiguration": [
{
"aadGroupTeamName": "Sample Group Team Name",
"aadSecurityGroupId": "#{team.samplegroupteamname.aadSecurityGroupId}#",
"dataverseSecurityRoleNames": [
"#{team.samplegroupteamname.role}#"
]
}
]
}
Kopiera ovanstående JSON-kodexempel till en ny fil med namnet customDeploymentSettings.json.
Spara filen i mappen config i Git.
Skapa standatd miljövariabeln JSON i anpassade distributionskonfigurationsfilen
Egenskapen DefaultEnvironmentVariables
i customDeploymentConfiguration.json används i exportpipelinen för att ställa in Dataverse standardmiljövariabler i lösningen när lösningen exporteras och lagras i källkontroll.
Kommentar
Inställningarna för standardvariabler för miljön gäller endast om exportpipelinen har konfigurerats med pipelinevariabeln VerifyDefaultEnvironmentVariableValues = True
.
Kopiera schemanamnet för miljövariabeln från miljövariabelkomponenten i din lösning.
Redigera filen customDeploymentSettings.json och klistra in namnet på
DefaultEnvironmentVariables
egenskapen, som i följande exempelkod:{ "DefaultEnvironmentVariables": [ [ "cat_TextEnvironmentVariable", "#{defaultvariable.cat_TextEnvironmentVariable}#" ], [ "cat_DecimalEnvironmentVariable", "#{defaultvariable.cat_DecimalEnvironmentVariable}#" ], [ "cat_jsonEnvironmentVariable", "{\"name\":\"#{defaultvariable.cat_jsonEnvironmentVariable.name}#\"}" ] ] }
Om du använder tillägget Ersätt token och lägger till token i konfigurationen, t.ex. i exemplet ovan, öppnar du pipelinen för lösningen och väljer sedan Redigera>Variabler.
På skärmen Pipelinevariabler skapa en pipeline pipelinevariabel för varje token i konfigurationen, t.ex. defaultvariable.cat_TextEnvironmentVariable.
Om tillämpligt upprepar du stegen ovan för varje lösning och pipeline du skapar.
Skapa Microsoft Entra gruppkonfiguration JSON
Egenskapen AadGroupCanvasConfiguration
i filen customDeploymentConfiguration.json delar arbetsyteappar i din lösning med specifika Microsoft Entra-grupper efter att lösningen importeras till en miljö.
Kopiera ID:erna för arbetsyteappen och Microsoft Entra-gruppen.
Hämta schemanamnet för arbetsyteappen från arbetsyteappkomponenten i din lösning.
Hämta Microsoft Entra grupp-ID från sidan Grupp i Azure-portalen.
Redigera filen customDeploymentSettings.json och klistra in ID på
AadGroupCanvasConfiguration
egenskapen, som i följande exempelkod:{ "AadGroupCanvasConfiguration": [ { "aadGroupId": "#{canvasshare.aadGroupId}#", "canvasNameInSolution": "cat_devopskitsamplecanvasapp_c7ec5", "roleName": "#{canvasshare.roleName}#" } ] }
roleName
kan varaCanView
,CanViewWithShare
ochCanEdit
.Om du använder tillägget Ersätt token och lägger till token i konfigurationen, t.ex. i exemplet ovan, öppnar du pipelinen för lösningen och väljer sedan Redigera>Variabler.
På skärmen Pipeline Variables skapa en pipeline pipelinevariabel för varje token i konfigurationen, t.ex.
canvasshare.aadGroupId
.Ange värdet till det Microsoft Entra grupp-ID som appen måste delas med för den specifika miljön.
Om du vill kontrollera att värdet inte sparas som oformaterad text väljer du Behåll det här värdet.
Om tillämpligt upprepar du stegen ovan för varje lösning och pipeline du skapar.
Skapa Microsoft Entra grupp- och teamkonfiguration JSON
Egenskapen AadGroupTeamConfiguration
i filen customDeploymentConfiguration.json mappar Dataverse-team och roller till Microsoft Entra-grupper i din lösning efter att lösningen har importerats till en miljö.
Säkerhetsrollerna måste läggas till i lösningen om de inte skapas manuellt i målmiljön. En eller flera roller kan användas för ett team. Dessa roller ger behörigheter till lösningskomponenter som krävs av användarna i gruppen.
Dataverse teamnamnet kan vara vilket befintligt team eller ett nytt team som ska skapas i Dataverse och mappas till en Microsoft Entra grupp efter att lösningen har importerats.
Dataverse-rollerna kan vara vilken säkerhetsroll som helst i Dataverse som kan tillämpas på teamet efter att lösningen har importerats. Rollerna ska ha privilegier till de resurser som krävs av lösningen, till exempel tabeller och processer.
Hämta Microsoft Entra grupp-ID från sidan Grupp i Azure-portalen som i tidigare avsnitt.
Redigera filen customDeploymentSettings.json och klistra in JSON på
AadGroupTeamConfiguration
egenskapen, som i följande exempelkod:{ "AadGroupTeamConfiguration": [ { "aadGroupTeamName": "alm-accelerator-sample-solution", "aadSecurityGroupId": "#{team.aadSecurityGroupId}#", "dataverseSecurityRoleNames": [ "ALM Accelerator Sample Role" ] } ] }
Om du använder tillägget Ersätt token och lägger till token i konfigurationen, t.ex. i exemplet ovan, öppnar du pipelinen för lösningen och väljer sedan Redigera>Variabler.
På skärmen Pipeline Variables skapa en pipeline pipelinevariabel för varje token i konfigurationen, t.ex.
team.aadSecurityGroupId
.Ange värdet till det Microsoft Entra grupp-ID som ska associeras med teamet i Dataverse.
Om du vill kontrollera att värdet inte sparas som oformaterad text väljer du Behåll det här värdet.
Om tillämpligt upprepar du stegen ovan för varje lösning och pipeline du skapar.
Skapa ägarskap för lösningskomponenten JSON
Egenskapen SolutionComponentOwnershipConfiguration
i filen customDeploymentConfiguration.json tilldelar ägarskap för lösningskomponenter till Dataverse-användare när lösningen har importerats till en miljö. Att tilldela ägarskap är användbart för komponenter, t.ex. flöden som ska ägas som standard av tjänstens huvudanvändare när lösningen importeras av pipelinen och organisationer vill tilldela om dem efter import.
Egenskapen SolutionComponentOwnershipConfiguration
för att aktivera flöden som inte har några anslutningsreferenser. Flödet aktiveras av användaren som anges när det inte finns några anslutningsreferenser finns för att möjliggöra flödet.
Kommentar
Den aktuella pipelinen implementerar endast möjligheten att ange ägarskap för flöden.
Lösningskomponentens typkod är baserad på de komponenttyper som anges i solutioncomponent EntityType weeb-API-referensen. Till exempel är ett Power Automate flöde komponenttyp 29. Komponenttypen ska anges som ett heltalsvärde (utan citattecken).
Få det unika namnet på en Power Automate flödeskomponent från den uppackade lösningen.
För flöden krävs inga unika namn när de skapas. Det enda verkliga unika ID:t för ett flöde är det interna ID som systemet tilldelar det i en lösning.
Hämta e-postadress för ägare från användarens post i Dataverse eller Microsoft 365.
Redigera filen customDeploymentSettings.json och klistra in JSON på
AadGroupTeamConfiguration
egenskapen, som i följande exempelkod:{ "SolutionComponentOwnershipConfiguration": [ { "solutionComponentType": 29, "solutionComponentUniqueName": "00000000-0000-0000-0000-00000000000", "ownerEmail": "#{owner.ownerEmail}#" }, { "solutionComponentType": 29, "solutionComponentUniqueName": "00000000-0000-0000-0000-00000000000", "ownerEmail": "#{owner.ownerEmail}#" } ] }
Om du använder tillägget Ersätt token och lägger till token i konfigurationen, t.ex. i exemplet ovan, öppnar du pipelinen för lösningen och väljer sedan Redigera>Variabler.
På skärmen Pipeline variabler skapa en pipeline pipelinevariabel för varje token i konfigurationen, t.ex.
owner.ownerEmail
.Ange värdet till e-postadressen för komponentens ägare.
Om du vill kontrollera att värdet inte sparas som oformaterad text väljer du Behåll det här värdet.
Om tillämpligt upprepar du stegen ovan för varje lösning och pipeline du skapar.
Importera data från pipelinen
Du kanske vill importera konfigurations- eller startdata i Dataverse miljön när du har distribuerat lösningen i målmiljön. Pipelinen har konfigurerats för att importera data med konfigurationsmigreringsverktyget, som är tillgängligt via NuGet. Läs mer om hur du hanterar konfigurationsdata.
När du lagrar konfigurationsdata i roten för config-katalogen distribueras samma konfigurationsdata för alla miljöer. Du kan skapa miljöspecifika konfigurationsdatafiler. Lagra dem i katalogen config med namn efter miljöerna. Katalognamnet måste matcha variabeln för EnvironmentName
-pipelinen du skapade när du konfigurerade pipelinen för verifiera, testa och produktionsmiljöer. Om inga miljöspecifika konfigurationsdata och katalog hittas återställs pipelines till konfigurationsdata i roten för config-katalogen.
Klona Azure DevOps-lagringsplatsen där lösningen ska källkontrolleras och där du skapade lösningspipelinen YAML till din lokala dator.
Om du inte redan har gjort det, skapa en katalog med namnet config i mappen config i din lösningmapp.
Installera migrationsverktyg för konfiguration. Följ anvisningarna i Hämtningsverktygen från NuGet.
Öppna konfigurationsmigreringsverktyget, välj Skapa schema och välj sedan Fortsätt.
Logga in i klientorganisationen som du vill exportera dina konfigurationsdata från.
Välj din miljö.
Välj de tabeller och kolumner du vill exportera.
Välj Spara och exportera. Välj Spara och exportera och spara dina data i config\ConfigurationMigrationData i din lokala Azure DevOps-lagringsplats under lösningsmappen för vilken denna data ska importeras.
Kommentar
Pipelinen söker efter den specifika mappen som ska importera data när lösningen har importerats. Kontrollera att namnet på mappen och platsen är exakt som det anges här.
Välj Ja när du uppmanas att exportera data.
Välj samma plats för dina exporterade data, välj Spara och välj Exportera data.
När exporten är klar packas filerna upp från filen data.zip till katalogen ConfigurationMigrationData. Ta bort filerna data.zip och SampleData.xml.
Bekräfta ändringarna med dina data till Azure DevOps.