Del via


Distribusjonskonfigurasjonsveiledning

ALM Accelerator for Power Platform bruker konfigurasjonsfiler i JSON-format til å automatisere distribusjonen av løsningene. De angir tilkoblingsreferanser, miljøvariabler og tillatelser, deling av lerretsapper og oppdatering av eierskap for løsningskomponenter som Power Automate-flyter når løsningene distribueres til nedstrømsmiljøer.

Konfigurasjonsfilene i denne artikkelen gjør det mulig å konfigurere elementer som er spesifikke for miljøet en løsning distribueres i. Konfigurasjonsfilene du trenger, og trinnene du må følge i denne artikkelen, er avhengig av komponentene som distribueres av løsningskanalen. Hvis løsningen for eksempel bare inneholder Dataverse-tabeller, kolonner og modelldrevne apper og konfigurasjon av per miljø eller data, kan du hoppe over noen av disse trinnene.

Vi gir eksempler på konfigurasjonsfiler i distribusjonsinnstillingene for ALMAcceleratorSampleSolution og innstillinger for tilpasset distribusjon.

Før du starter

Denne artikkelen er en trinnvis veiledning for distribusjon av konfigurasjonsfiler manuelt. Det inneholder detaljer om og kontekst for handlingene som utføres av ALM Accelerator-appen og -kanalene og fungerer som en referanse for administratorer som vil vite detaljene for hvert trinn i prosessen.

Vi anbefaler imidlertid at du konfigurerer distribusjonsinnstillinger i ALM Accelerator-appen.

Opprette JSON-fil for distribusjonsinnstillinger

Når du lagrer filen customDeploymentSettings.json i roten av konfigurasjonsmappen, gjelder den samme konfigurasjonen for alle miljøer. Hvis du bruker filtransformasjon eller tokenerstatningskanaloppgaver for informasjon som er spesifikk til bestemte miljø, kan du angi per miljø-verdier i kanalvariablene.

Du kan imidlertid også opprette miljøspesifikke customDeploymentSettings.json-filer. Lagre dem i undermapper i konfigurasjonsmappen med navn på miljøene. Mappenavnet må tilsvare med variabelen EnvironmentName som du opprettet da du satte opp kanalen for validerings-, test- og produksjonsmiljøene. Hvis det ikke finnes miljøspesifikke distribusjonsinnstillinger for JSON og mappe, tilbakestilles pipelinene til konfigurasjonen i roten av config-katalogen.

Skjermbilde av et konfigurasjonsmappehierarki.

Du kan også opprette brukerspesifikke konfigurasjonsfiler, for eksempel JohannaDev i det foregående bildet. Utviklere kan bruke dem til å velge en bestemt konfigurasjon når de importerer uadministrerte løsninger fra kildekontrollen.

JSON-filen for distribusjonsinnstillingene konfigurerer tilkoblingsreferanser 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. Kopier JSON-kodeeksemplene ovenfor til en ny fil kalt deploymentSettings.json.

  2. Lagre filen i konfigurasjonsmappen i Git.

Skjermbilde av strukturen for en konfigurasjonsmappe.

Opprette JSON-tilkoblingsreferanse

Egenskapen ConnectionReferences i filen customDeploymentConfiguration.json angir tilkoblingsreferanser i løsningen etter at løsningen er importert til et miljø. ConnectionReferences Aktiver også flyter etter at løsningen er importert, basert på eieren av tilkoblingen som er angitt i variabelen.

  1. Opprett tilkoblingene manuelt i målmiljøene.

  2. Kopier ID-ene for tilkoblingene.

    • Hent det logiske navnet på tilkoblingsreferansen fra tilkoblingsreferansekomponenten i løsningen.

      Skjermbilde av et skjemanavn for tilkoblingsreferanse i en løsning, uthevet i et deaktivert tekstfelt under navneetiketten.

    • Hent tilkoblings-ID-en fra nettadressen til tilkoblingen etter at du har opprettet den. Hvis for eksempel nettadressen er https://.../connections/shared_commondataservice/9f66d1d455f3474ebf24e4fa2c04cea2/details, er tilkoblings-ID-en 9f66d1d455f3474ebf24e4fa2c04cea2.

  3. Rediger filen customDeploymentSettings.json, og lim inn ID-ene i egenskapen ConnectionReferences, 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 bruker filtypen Erstatt tokener og legger til tokener i konfigurasjonen, for eksempel i eksemplet over, åpner du kanalen for løsningen, og deretter velger du Rediger>Variabler.

  5. Opprett tilkoblingen <connection_reference_logicalname> i skjermbildet Kanalvariabler. I dette eksemplet er kanalvariabelen kalt connection.cat_CDS_Current.

  6. Angi verdien til tilkoblings-ID-en du fant tidligere.

  7. Hvis du vil sikre at verdien ikke lagres som ren tekst, velger du Hold denne verdien hemmelig.

Gjenta disse trinnene for hver løsning og hver forløp du oppretter, der det er aktuelt.

Opprett JSON for miljøvariabel i distribusjonskonfigurasjonsfilen

Egenskapen EnvironmentVariables i filen customDeploymentConfiguration.json angir Dataverse-miljøvariablene i løsningen etter at løsningen er importert til et miljø.

Viktig

Når du eksporterer kildekontrollerte løsninger, eksporteres miljøvariabelverdier sammen med løsningen. Dette kan være en sikkerhetsrisiko hvis miljøvariablene inneholder sensitiv informasjon. Vi anbefaler at du ikke lagrer sensitiv informasjon i miljøvariabler. En måte å sikre at miljøvariabelverdiene ikke er kildekontrollerte på, er å opprette en løsning spesielt for miljøvariabelverdier i utviklingsmiljøene og angi verdien i løsningen. Dette hindrer at verdier eksporteres med løsningen og lagres i kildekontrollen.

  1. Kopier skjemanavnet for miljøvariabelen fra miljøvariabelkomponenten i løsningen.

    Skjermbilde av et skjemanavn for miljøvariabel i en løsning, uthevet i et deaktivert tekstfelt under navneetiketten.

  2. Rediger filen customDeploymentSettings.json, og lim inn navnet i egenskapen EnvironmentVariables, 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 bruker filtypen Erstatt tokener og legger til tokener i konfigurasjonen, for eksempel i eksemplet over, åpner du kanalen for løsningen, og deretter velger du Rediger>Variabler.

  4. Pipelinevariabel-skjermen oppretter du en pipelinevariabeln for hvert token i konfigurasjonen, for eksempel variable.cat_TextEnvironmentVariable.

  5. Angi verdien til miljøvariabelverdien for miljøet.

  6. Hvis du vil sikre at verdien ikke lagres som ren tekst, velger du Hold denne verdien hemmelig.

Gjenta disse trinnene for hver løsning og hver forløp du oppretter, der det er aktuelt.

Opprett en egendefinert JSON-fil for distribusjonsinnstillinger

Den egendefinerte JSON-filen for distribusjonsinnstillinger inneholder innstillinger som aktiverer flyter på vegne av en bruker, angir eierskap av flyter, deler lerretsapper med Microsoft Entra-grupper og oppretter Dataverse-gruppeteam etter distribusjon.

{
  "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. Kopier JSON-kodeeksemplene ovenfor til en ny fil kalt customDeploymentSettings.json.

  2. Lagre filen i konfigurasjonsmappen i Git.

Skjermbilde av en struktur for konfigurasjonsmappe for egendefinerte distribusjonsinnstillinger.

Opprett JSON for standardmiljøvariabel i den egendefinerte distribusjonskonfigurasjonsfilen

Egen skapen DefaultEnvironmentVariables i customDeploymentConfiguration.json brukes i eksportkanalen til å angi standard Dataverse-miljøvariabler i løsningen når løsningen eksporteres og lagres i kildekontrollen.

Merk

Innstillingene for standardmiljøvariabler gjelder bare hvis eksportpipelinen er konfigurert med pipelinevariabelen VerifyDefaultEnvironmentVariableValues = True.

  1. Kopier skjemanavnet for miljøvariabelen fra miljøvariabelkomponenten i løsningen.

    Skjermbilde av et skjemanavn for miljøvariabel, uthevet i et deaktivert tekstfelt under navneetiketten.

  2. Rediger filen customDeploymentSettings.json, og lim inn navnet i egenskapen DefaultEnvironmentVariables, 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 bruker filtypen Erstatt tokener og legger til tokener i konfigurasjonen, for eksempel i eksemplet over, åpner du kanalen for løsningen, og deretter velger du Rediger>Variabler.

  4. Pipelinevariabel-skjermen oppretter du en pipelinevariabeln for hvert token i konfigurasjonen, for eksempel defaultvariable.cat_TextEnvironmentVariable.

Gjenta disse trinnene for hver løsning og hver forløp du oppretter, der det er aktuelt.

Opprett Microsoft Entra-gruppelerretkonfigurasjon JSON

Egenskapen AadGroupCanvasConfiguration i filen customDeploymentConfiguration.json deler lerretsapper i løsningen med bestemte Microsoft Entra-grupper etter at løsningen er importert til et miljø.

  1. Kopier ID-ene for lerretsappen og Microsoft Entra-gruppen.

    • Hent skjemanavnet for lerretsappen fra lerretsappkomponenten i løsningen.

      Skjermbilde av et skjemanavn for lerretsappetikett, uthevet i et deaktivert tekstfelt under navneetiketten.

    • Hent Microsoft Entra-gruppe-ID-en fra Gruppe-siden i Azure Portal.

  2. Rediger filen customDeploymentSettings.json, og lim inn ID-ene i egenskapen AadGroupCanvasConfiguration, 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 bruker filtypen Erstatt tokener og legger til tokener i konfigurasjonen, for eksempel i eksemplet over, åpner du kanalen for løsningen, og deretter velger du Rediger>Variabler.

  4. Kanalvariabler-skjermen oppretter du en kanalvariabel for hvert token i konfigurasjonen, for eksempel canvasshare.aadGroupId.

  5. Angi verdien til Microsoft Entra-gruppe-ID-en som appen må deles med for det bestemte miljøet.

  6. Hvis du vil sikre at verdien ikke lagres som ren tekst, velger du Hold denne verdien hemmelig.

Gjenta disse trinnene for hver løsning og hver forløp du oppretter, der det er aktuelt.

Opprette JSON for Microsoft Entra-gruppe og teamkonfigurasjon

Egenskapen AadGroupTeamConfiguration i filen customDeploymentConfiguration.json tildeler Dataverse-team og -roller til Microsoft Entra-grupper i løsningen etter at løsningen er importert til et miljø.

Sikkerhetsrollene må legges til i løsningen hvis de ikke opprettes manuelt i målmiljøet. En eller mange roller kan brukes på et team. Rollene gir tillatelser til løsningskomponenter som kreves av brukerne i gruppen.

  1. Dataverse-teamnavnet kan være et eksisterende team eller et nytt team som skal opprettes i Dataverse og tildeles til en Microsoft Entra-gruppe etter at løsningen er importert.

  2. Dataverse-rollene kan være en sikkerhetsrolle i Dataverse som blir brukt på teamet etter at løsningen er importert via kanalen. Rollene må ha rettigheter til ressursene som kreves av løsningen, for eksempel tabeller og prosesser.

  3. Hent Microsoft Entra-gruppe-ID-en fra Gruppe-siden i Azure Portal som i forrige del.

  4. Rediger filen customDeploymentSettings.json, og lim inn JSON i egenskapen AadGroupTeamConfiguration, som i følgende eksempelkode:

    {
      "AadGroupTeamConfiguration": [
        {
          "aadGroupTeamName": "alm-accelerator-sample-solution",
          "aadSecurityGroupId": "#{team.aadSecurityGroupId}#",
          "dataverseSecurityRoleNames": [
            "ALM Accelerator Sample Role"
          ]
        }
      ]
    }
    
  5. Hvis du bruker filtypen Erstatt tokener og legger til tokener i konfigurasjonen, for eksempel i eksemplet over, åpner du kanalen for løsningen, og deretter velger du Rediger>Variabler.

  6. Kanalvariabler-skjermen oppretter du en kanalvariabel for hvert token i konfigurasjonen, for eksempel team.aadSecurityGroupId.

  7. Angi verdien til Microsoft Entra-gruppe-ID-en som skal knyttes til teamet i Dataverse.

  8. Hvis du vil sikre at verdien ikke lagres som ren tekst, velger du Hold denne verdien hemmelig.

Gjenta disse trinnene for hver løsning og hver forløp du oppretter, der det er aktuelt.

Opprette JSON for løsningskomponenteierskap

Egenskapen SolutionComponentOwnershipConfiguration i filen customDeploymentConfiguration.json tildeler løsningskomponentene til Dataverse-brukere etter at løsningen er importert til et miljø. Tildeling av eierskap er nyttig for komponenter, for eksempel flyter som eies som standard av tjenestekontobrukeren etter at løsningen importeres av kanalen, og organisasjoner vil tildele dem på nytt etter at de er importert.

Egenskapen SolutionComponentOwnershipConfiguration aktiverer også flyter som ikke har tilkoblingsreferanser. Flyten aktiveres av den angitte brukeren når ingen tilkoblingsreferanser finnes for å aktivere flyten.

Merk

Gjeldende pipeline implementerer bare muligheten til å angi eierskap for flyter.

  1. Koden for løsningskomponenttypen er basert på komponenttypene som er angitt i Web API-referansen solutioncomponent EntityType. En Power Automate-flyt er for eksempel komponenttype 29. Komponenttypen må være angitt som en heltallsverdi uten anførselstegn.

  2. Hent det unike navnet på Power Automate-flytkomponenten fra den utpakkede løsningen.

    Flyter krever ikke unike navn når de opprettes. Den eneste unike identifikatoren for en flyt er den interne ID-en som systemet tildeler den i en løsning.

    Skjermbide av en XML-fil for utpakket løsningsarbeidsflyt.

    Skjermbilde av XML for utpakket løsningsarbeidsflyt som viser WorkflowId.

  3. Hent eierens e-postadresse fra brukerens oppføring i Dataverse eller Microsoft 365.

  4. Rediger filen customDeploymentSettings.json, og lim inn JSON i egenskapen AadGroupTeamConfiguration, 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 bruker filtypen Erstatt tokener og legger til tokener i konfigurasjonen, for eksempel i eksemplet over, åpner du kanalen for løsningen, og deretter velger du Rediger>Variabler.

  6. Kanalvariabler-skjermen oppretter du en kanalvariabel for hvert token i konfigurasjonen, for eksempel owner.ownerEmail.

  7. Angi verdien til e-postadressen til komponentens eier.

  8. Hvis du vil sikre at verdien ikke lagres som ren tekst, velger du Hold denne verdien hemmelig.

Gjenta disse trinnene for hver løsning og hver forløp du oppretter, der det er aktuelt.

Importer data fra kanalen

Det kan hende du vil importere konfigurasjons- eller utgangsverdidata til Dataverse-miljøet etter at du distribuerer løsningen til målmiljøet. Kanalene konfigureres for å importere data ved hjelp av konfigurasjonsoverføringsverktøyet som er tilgjengelig via NuGet. Finn ut mer om hvordan du administrerer konfigurasjonsdata.

Når konfigurasjonsdataene lagres i rotfilen til konfigurasjonsmappen, distribuerer de samme konfigurasjonsdataene til alle miljøer. Du kan opprette miljøspesifikke konfigurasjonsdatafiler. Lagre dem i undermapper i konfigurasjonsmappen med navn på miljøene. Mappenavnet må tilsvare med variabelen EnvironmentName som du opprettet da du satte opp kanalen for validerings-, test- og produksjonsmiljøene. Hvis det ikke finnes miljøspesifikke konfigurasjonsdata og katalog, tilbakestilles kanalene til konfigurasjonsdataene i roten av konfigurasjonskatalogen.

  1. Klon Azure DevOps-repositoriet der løsningen skal kildekontrolleres, og der du opprettet YAML for løsningspipelinen din til den lokale maskinen.

  2. Hvis du ikke allerede gjort det, oppretter du en katalog kalt konfigurasjon i konfigurasjonsmappen i løsningsmappen.

    Skjermbilde av konfigurasjonsmappen under løsningskatalogen i lokal repositoriet.

  3. Installer verktøyet for konfigurasjonsoverføring. Følg instruksjonene i Nedlastingsverktøy fra NuGet.

  4. Åpne verktøyet Konfigurasjonsoverføring, velg Opprett skjema, og velg deretter Fortsett.

  5. Logg på leieren du vil eksportere konfigurasjonsdataene fra.

  6. Velg miljøet ditt.

  7. Velg tabellene og kolonnene du vil eksportere.

  8. Velg Lagre og eksporter. Velg Lagre og eksporter, og lagre dataene i mappebanen config\ConfigurationMigrationData i det lokale Azure DevOps-repositoriet som dataene ble importert for.

    Merk

    Kanalen ser etter denne bestemte mappen for å importere dataene etter at løsningen er importert. Kontroller at navnet på mappen og plasseringen er nøyaktig slik det er angitt her.

  9. Velg Ja når du blir bedt om å eksportere dataene.

  10. Velg samme plassering for de eksporterte dataene, velg Lagre, og velg deretter Eksporter data.

  11. Når eksporten er fullført, pakker du ut filene fra filen data.zip til mappen ConfigurationMigrationData. Slett filene data.zip og SampleData.xml.

    Skjermbilde av konfigurasjonsoverføringsdata pakket ut i mappen ConfigurationMigrationData.

  12. Utfør endringene med dataene i Azure DevOps.

Neste trinn