Del via


Vejledning til installationskonfiguration

ALM Accelerator for Power Platform bruges konfigurationsfiler i JSON-format til at automatisere installationen af løsningerne. Den indstiller forbindelsesreferencer, miljøvariabler og tilladelser, deler lærredsapps og opdaterer ejerskabet af løsningskomponenter som f.eks. Power Automate-flows, når løsningerne udrulles til downstream-miljøer.

Konfigurationsfilerne i denne artikel giver dig mulighed for at konfigurere elementer, der er specifikke for det miljø, en løsning installeres i. De konfigurationsfiler, du skal bruge, og dermed de trin, du skal følge i denne artikel, afhænger af de komponenter, løsningspipelinerne installerer. Hvis din løsning f.eks. kun indeholder Dataverse-tabeller, kolonner og modelbaserede apps uden miljøkonfiguration eller behov for data, kan du springe over nogle af disse trin.

Vi har givet eksempel på konfigurationsfiler i ALMAcceleratorSampleSolution installationsindstillinger og brugerdefinerede installationsindstillinger.

Inden du starter

Denne artikel er en trinvis vejledning i at konfigurere installationskonfigurationsfiler manuelt. Dette indeholder detaljer og kontekst for de handlinger, der udføres af ALM Accelerator-app og pipelines og fungerer som reference for de administratorer, der ønsker at kende de specifikke oplysninger for hvert trin i processen.

Det anbefales dog, at du konfigurerer installationsindstillinger i appen ALM Accelerator.

Oprette en udrulningsindstillings-JSON-fil

Når customDeploymentSettings.json-filen lagres i roden af konfigurationsmappen, gælder den samme konfiguration for alle miljøer. Hvis du antager, at du bruger filtransformering eller token til erstatning af pipelineopgaver til at gemme alle de miljøspecifikke oplysninger, kan du angive de miljøspecifikke værdier i pipelinevariablerne.

Men du kan også oprette miljøspecifikke customDeploymentSettings.json-filer. Gem dem i undermapper til mappen config, der er navngivet efter dine miljøer. Mappenavnet skal svare til den EnvironmentName-variabel, du oprettede under konfiguration af pipelinen for at validere, teste og producere miljøer. Hvis der ikke findes nogen miljøspecifikke installationsindstillinger, som JSON og mappen findes, vender pipelinerne tilbage til konfigurationen i roden af mappen config.

Skærmbillede af et config-mappehierarki.

Du kan også oprette brugerspecifikke konfigurationsfiler, f.eks. JohannaDev i det foregående billede. Udviklere kan bruge dem til at vælge en bestemt konfiguration, når de importerer ikke-administrerede løsninger fra kildekontrolelementet.

JSON-filen med udrulningsindstillingerne konfigurerer forbindelsesreferencer og 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"
        }
    ]
}
  1. Kopiér ovenstående eksempel på JSON-kode til en ny fil, der kaldes deploymentSettings.json.

  2. Gem filen i mappen config i Git.

Skærmbillede af en konfigurationsmappestruktur.

Opret en forbindelsesreference JSON

Egenskaben i ConnectionReferences i filen customDeploymentConfiguration.json angiver forbindelsesreferencer i løsningen, når løsningen er importeret i et miljø. ConnectionReferences aktiverer også flows efter løsningen er importeret på baggrund af ejeren af den forbindelse, der er angivet i variablen.

  1. Opret forbindelser manuelt i destinationsmiljøet.

  2. Kopiér ID'er for forbindelserne.

    • Hent det logiske navn på forbindelsesreferencen fra forbindelsesreferencekomponenten i løsningen.

      Skærmbillede af navnet på et forbindelsesreferenceskema i en løsning, der er fremhævet i et deaktiveret tekstfelt under navneetiketten.

    • Hent forbindelses-id fra forbindelsens URL-adresse, når du har oprettet den. Id for URL er f.eks. 'https://.../connections/shared_commondataservice/9f66d1d455f3474ebf24e4fa2c04cea2/details', forbindelses-id er 9f66d1d455f3474ebf24e4fa2c04cea2.

  3. Rediger customDeploymentSettings.json-filen, og indsæt id'er i ConnectionReferences-egenskaben som i følgende eksempelkode:

    "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"
            }
    ]
    
  4. Hvis du bruger udvidelsen Erstat tokens og tilføjer tokens i din konfiguration som i ovenstående eksempel, skal du åbne pipelinen til løsningen og derefter vælge Rediger>Variabler.

  5. På skærmen Pipelinevariabler skal du oprette forbindelsen <connection_reference_logicalname>. I dette eksempel hedder pipeline-variablen connection.cat_CDS_Current.

  6. Angiv værdien til det forbindelses-id, du fandt tidligere.

  7. Du kan sikre dig, at værdien ikke gemmes som almindelig tekst, ved at vælge Hold denne værdi hemmelig.

Gentag eventuelt ovenstående trin for hver enkelt løsning og pipeline, du opretter.

Opret JSON-miljøvariabel i installationskonfigurationsfilen

Egenskaben EnvironmentVariables i filen customDeploymentConfiguration.json angiver Dataverse-miljøvariabler i din løsning, når løsningen importeres til et miljø.

Vigtigt

Når kilde-kontrollerede løsninger eksporteres, eksporteres miljøvariable værdier sammen med løsningen. I visse tilfælde kan der være en sikkerhedsrisiko, når miljøvariablerne indeholder følsomme oplysninger. Det anbefales, at du ikke gemmer følsomme oplysninger i miljøvariabler. En måde at sikre, at miljøvariabelværdierne ikke versionsstyres på, er ved at oprette en løsning specielt til miljøvariable værdier i udviklingsmiljøerne og angive den aktuelle værdi af miljøvariablerne i den pågældende løsning. Derved forhindres, at de aktuelle værdier eksporteres under eksport af løsningen, og at de gemmes i kildekontrolelementet.

  1. Kopier skemanavnet på miljøvariablen fra miljøvariabelkomponenten i løsningen.

    Skærmbillede af navnet på miljøvariabelskemaet i en løsning, der er fremhævet i et deaktiveret tekstfelt under navneetiketten.

  2. Rediger customDeploymentSettings.json-filen, og indsæt navnet i EnvironmentVariables-egenskaben som i følgende eksempelkode:

    {
        "EnvironmentVariables": [
            {
                "SchemaName": "cat_TextEnvironmentVariable",
                "Value": "#{variable.cat_TextEnvironmentVariable}#"
            },
            {
                "SchemaName": "cat_DecimalEnvironmentVariable",
                "Value": "#{variable.cat_DecimalEnvironmentVariable}#"
            },
            {
                "SchemaName": "cat_JsonEnvironmentVariable",
                "Value": "{\"name\":\"#{variable.cat_JsonEnvironmentVariable.name}#\"}"
            }
        ]    
    }
    
  3. Hvis du bruger udvidelsen Erstat tokens og tilføjer tokens i din konfiguration som i ovenstående eksempel, skal du åbne pipelinen til løsningen og derefter vælge Rediger>Variabler.

  4. På skærmen pipelinevariabel skal du oprette en pipelinevariabel for hvert token i din konfiguration. F.eks. variable.cat_TextEnvironmentVariable.

  5. Indstil værdien til miljøvariabelværdien for pågældende miljø.

  6. Du kan sikre dig, at værdien ikke gemmes som almindelig tekst, ved at vælge Hold denne værdi hemmelig.

Gentag eventuelt ovenstående trin for hver enkelt løsning og pipeline, du opretter.

Oprette en brugerdefineret udrulningsindstillings-JSON-fil

Den brugerdefinerede udrulningsindstillinger i JSON-filen indeholder indstillinger, der aktiverer flows på vegne af en bruger, angivelse af ejerskab af flow, deling af lærredapps med Microsoft Entra-grupper og oprettelse af Dataverse-gruppeteams efter installationen.

{
  "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}#"
      ]
    }
  ]
}
  1. Kopiér ovenstående eksempel på JSON-kode til en ny fil, der kaldes customDeploymentSettings.json.

  2. Gem filen i mappen config i Git.

Skærmbillede af en config-mappestruktur til brugerdefinerede installationsindstillinger.

Oprette standard-miljøvariabel JSON i den brugerdefinerede installationskonfigurationsfil

Egenskaben DefaultEnvironmentVariables i customDeploymentConfiguration.json anvendes i eksportpipelinen til at angive Dataverse-standardmiljøvariabler i løsningen, når løsningen eksporteres og gemmes i kildestyringen.

Bemærk

Indstillingerne for standardmiljøvariabler gælder kun, hvis eksportpipelinen er konfigureret med pipelinevariablen VerifyDefaultEnvironmentVariableValues = True.

  1. Kopier skemanavnet på miljøvariablen fra miljøvariabelkomponenten i løsningen.

    Skærmbillede af navnet på miljøvariabelskemaet, der er fremhævet i et deaktiveret tekstfelt under navneetiketten.

  2. Rediger customDeploymentSettings.json-filen, og indsæt navnet i DefaultEnvironmentVariables-egenskaben som i følgende eksempelkode:

    {
      "DefaultEnvironmentVariables": [
        [ "cat_TextEnvironmentVariable", "#{defaultvariable.cat_TextEnvironmentVariable}#" ],
        [ "cat_DecimalEnvironmentVariable", "#{defaultvariable.cat_DecimalEnvironmentVariable}#" ],
        [ "cat_jsonEnvironmentVariable", "{\"name\":\"#{defaultvariable.cat_jsonEnvironmentVariable.name}#\"}" ]
      ]
    }
    
  3. Hvis du bruger udvidelsen Erstat tokens og tilføjer tokens i din konfiguration som i ovenstående eksempel, skal du åbne pipelinen til løsningen og derefter vælge Rediger>Variabler.

  4. Opret en pipelinevariabel for hvert token i din konfiguration på skærmbilledet Pipelinevariabler, f.eks. defaultvariable.cat_TextEnvironmentVariable.

Gentag eventuelt ovenstående trin for hver enkelt løsning og pipeline, du opretter.

Oprette JSON-konfigurationsfil til Microsoft Entra-gruppelærred

Egenskaben AadGroupCanvasConfiguration i customDeploymentConfiguration.json-filen deler lærredsapps i løsningen med bestemte Microsoft Entra-grupper, når løsningen er importeret i et miljø.

  1. Kopier id'er til lærredsapp og Microsoft Entra-gruppe.

    • Hent skemanavnet på lærredsapp fra lærredsapp-komponenten i løsningen.

      Skærmbillede af skemanavnet på lærredsapp-etiketten, der er fremhævet i et deaktiveret tekstfelt under navneetiketten.

    • Hent Microsoft Entra-gruppe-id'et fra Group-siden i Azure-portalen.

      Skærmbillede af et Microsoft Entra-gruppe-id, der er fremhævet i et deaktiveret tekstfelt ud for Objekt-id-etiketten.

  2. Rediger customDeploymentSettings.json-filen, og indsæt id'er i AadGroupCanvasConfiguration-egenskaben som i følgende eksempelkode:

    {
      "AadGroupCanvasConfiguration": [
        {
          "aadGroupId": "#{canvasshare.aadGroupId}#",
          "canvasNameInSolution": "cat_devopskitsamplecanvasapp_c7ec5",
          "roleName": "#{canvasshare.roleName}#"
        }
      ]
    }
    

    roleName kan være CanView, CanViewWithShare og CanEdit.

  3. Hvis du bruger udvidelsen Erstat tokens og tilføjer tokens i din konfiguration som i ovenstående eksempel, skal du åbne pipelinen til løsningen og derefter vælge Rediger>Variabler.

  4. Opret en pipelinevariabel for hvert token i konfigurationen på skærmbilledet Pipelinevariabler, f.eks. canvasshare.aadGroupId.

  5. Angiv værdien til det Microsoft Entra-gruppe-id, som appen skal deles med i det pågældende miljø.

  6. Du kan sikre dig, at værdien ikke gemmes som almindelig tekst, ved at vælge Hold denne værdi hemmelig.

Gentag eventuelt ovenstående trin for hver enkelt løsning og pipeline, du opretter.

Opret Microsoft Entra-gruppe og team med konfiguration af JSON

Egenskaben AadGroupTeamConfiguration i filen customDeploymentConfiguration.json-filen tilknytter Dataverse-teams og roller til Microsoft Entra-grupper i din løsning, når løsningen importeres til et miljø.

Sikkerhedsrollerne skal føjes til din løsning, hvis de ikke oprettes manuelt i destinationsmiljøet. En eller mange roller kan anvendes på en gruppe. Disse roller giver tilladelser til løsningskomponenter, der kræves af brugerne i gruppen.

  1. Dataverse-teamnavnet kan være et hvilket som helst eksisterende team eller et nyt team, der skal oprettes i Dataverse og knyttes til en Microsoft Entra-gruppe, når løsningen er importeret via pipelinen.

  2. Dataverse-rollerne kan være alle sikkerhedsroller i Dataverse, der vil blive anvendt på teamet, når løsningen er importeret. Rollerne skal have rettigheder til de ressourcer, der kræves af løsningen, f.eks. tabeller og processer.

  3. Hent Microsoft Entra-gruppe-id'et fra Group-siden i Azure-portalen i forrige sektion.

  4. Rediger customDeploymentSettings.json-filen, og indsæt JSON i AadGroupTeamConfiguration-egenskaben som i følgende eksempelkode:

    {
      "AadGroupTeamConfiguration": [
        {
          "aadGroupTeamName": "alm-accelerator-sample-solution",
          "aadSecurityGroupId": "#{team.aadSecurityGroupId}#",
          "dataverseSecurityRoleNames": [
            "ALM Accelerator Sample Role"
          ]
        }
      ]
    }
    
  5. Hvis du bruger udvidelsen Erstat tokens og tilføjer tokens i din konfiguration som i ovenstående eksempel, skal du åbne pipelinen til løsningen og derefter vælge Rediger>Variabler.

  6. Opret en pipelinevariabel for hvert token i konfigurationen på skærmbilledet Pipelinevariabler, f.eks. team.aadSecurityGroupId.

  7. Angiv værdien til det Microsoft Entra-gruppe-id, der skal knyttes til gruppen i Dataverse.

  8. Du kan sikre dig, at værdien ikke gemmes som almindelig tekst, ved at vælge Hold denne værdi hemmelig.

Gentag eventuelt ovenstående trin for hver enkelt løsning og pipeline, du opretter.

Oprette ejerskabet over JSON-løsningskomponenter

Egenskaben SolutionComponentOwnershipConfiguration i customDeploymentConfiguration.json-filen bruges til at tildele ejerskab af løsningskomponenter til Dataverse-brugere, når løsningen er importeret i et miljø. Det er praktisk at tildele komponentejerskab for komponenter, f.eks. flow, der som standard ejes af tjenestens hovedbruger, når løsningen importeres af pipelinen, og organisationer vil gentildele dem efter importen.

Egenskaben SolutionComponentOwnershipConfiguration aktiverer desuden flows, der ikke har forbindelsesreferencer. Flowet aktiveres af den bruger, der angives, når der ikke blev fundet forbindelsesreferencer, som bruges til at aktivere flowet.

Bemærk

Med den aktuelle pipeline er det kun muligt at angive ejerskab over flow.

  1. Koden for løsningskomponenten er baseret på de komponenttyper, der er angivet i solutioncomponent EntityType-web-API-referencen. Et Power Automate-flow er f.eks. komponenttype 29. Komponenttypen skal angives som en heltalsværdi - uden anførselstegn.

  2. Hent det entydige navn på en Power Automate-flowkomponent fra den udpakkede løsning.

    Flow kræver ikke entydige navne, når de oprettes. Det eneste sande entydige id for et flow er derfor det interne id, som systemet bruger til at identificere det i en løsning.

    Skærmbillede af et udpakket løsnings-arbejdsflow XML-fil.

    Skærmbillede af et udpakket løsnings-arbejdsflow med XML, der viser WorkflowId.

  3. Hent ejerens mailadresse kan brugerens post i Dataverse eller Microsoft 365.

  4. Rediger customDeploymentSettings.json-filen, og indsæt JSON i AadGroupTeamConfiguration-egenskaben som i følgende eksempelkode:

    {
      "SolutionComponentOwnershipConfiguration": [
        {
          "solutionComponentType": 29,
          "solutionComponentUniqueName": "00000000-0000-0000-0000-00000000000",
          "ownerEmail": "#{owner.ownerEmail}#"
        },
        {
          "solutionComponentType": 29,
          "solutionComponentUniqueName": "00000000-0000-0000-0000-00000000000",
          "ownerEmail": "#{owner.ownerEmail}#"
        }
      ]
    }
    
  5. Hvis du bruger udvidelsen Erstat tokens og tilføjer tokens i din konfiguration som i ovenstående eksempel, skal du åbne pipelinen til løsningen og derefter vælge Rediger>Variabler.

  6. Opret en pipelinevariabel for hvert token i konfigurationen på skærmbilledet Pipelinevariabler, f.eks. owner.ownerEmail.

  7. Angiv værdien til e-mail-adressen på komponentens ejer.

  8. Du kan sikre dig, at værdien ikke gemmes som almindelig tekst, ved at vælge Hold denne værdi hemmelig.

Gentag eventuelt ovenstående trin for hver enkelt løsning og pipeline, du opretter.

Import af data fra pipelinen

Du kan importere konfigurationsdata eller oprindelsesdata i Dataverse-miljøet, når du har implementeret løsningen i destinationsmiljøet. Pipelinerne er konfigureret til at importere data ved hjælp af værktøjet til konfigurationsoverførsel, der er tilgængeligt via NuGet. Få mere at vide om styring af konfigurationsdata.

Når konfigurationsdata lagres i roden af config-mappen, anvendes samme konfigurationsdata for alle miljøer. Du kan oprette miljøspecifikke konfigurationsdatafiler. Gem dem i undermapper til mappen config, der er navngivet efter dine miljøer. Mappenavnet skal svare til den EnvironmentName-variabel, du oprettede under konfiguration af pipelinen for at validere, teste og producere miljøer. Hvis der ikke findes nogen miljøspecifikke installationsindstillinger, som JSON og mappen findes, vender pipelinerne tilbage til konfigurationen i roden af config-mappen.

  1. Klon Azure DevOps-lageret, hvor din løsning skal versionsstyres, og hvor du har oprettet løsningspipelinen YAML til den lokale maskine.

  2. Hvis du ikke allerede har oprettet en mappe med navnet config i mappen config, skal du oprette en løsningsmappe.

    Skærmbillede af config-mappen under løsningsmappen i lokalt lager.

  3. Installere værktøjet Konfigurationsoverførsel. Følg instruktionerne under Hent værktøjer fra NuGet.

  4. Åbn værktøjet Til konfigurationsoverførsel, vælg Opret skema, og vælg derefter Fortsæt.

  5. Log på den lejer, du vil eksportere konfigurationsdataene fra.

  6. Vælg dit miljø.

  7. Vælg de tabeller og kolonner, du vil eksportere.

  8. Vælg Gem og eksporter. Gem data i mappestien config\ConfigurationMigrationData i dit lokale Azure DevOps-lager under den løsningsmappe, som disse konfigurationsdata skal importeres til.

    Bemærk

    Pipelinen søger efter denne specifikke mappe, der skal køre importen, efter at løsningen er importeret. Kontrollér, at navnet på mappen og dens placering er præcis som angivet her.

  9. Vælg Ja, når du bliver bedt om at eksportere dataene.

  10. Vælg den samme placering til de eksporterede data, vælg Gem, og vælg derefter Eksportér data.

  11. Når eksporten er fuldført, skal du pakke filerne ud fra filen data.zip til mappen ConfigurationMigrationData. Slet filerne data.zip og SampleData.xml.

    Skærmbillede af konfigurationsoverførselsdata i mappen ConfigurationMigrationData.

  12. Anvend ændringerne med dine data til Azure DevOps.

Næste trin