Споделяне чрез


Ръководство за конфигуриране на внедряване

Използва ALM Accelerator for Power Platform конфигурационни файлове във формат JSON, за да автоматизира внедряването на вашите решения. Те задават препратки към връзки, променливи на средата и разрешения, споделят приложения за платно и актуализират собствеността на компонентите на решението, като Power Automate например потоци, когато решенията се разполагат в среди надолу по веригата.

Конфигурационните файлове в тази статия ви позволяват да конфигурирате елементи, които са специфични за средата, в която се разполага решение. Конфигурационните файлове, от които се нуждаете, и по този начин стъпките, които трябва да следвате в тази статия, зависят от компонентите, които вашите тръбопроводи за решения разполагат. Например, ако вашето решение съдържа само Dataverse таблици и приложения, базирани на модел, и не е необходима конфигурация или данни за среда, можете да пропуснете някои от тези стъпки.

Предоставихме примерни конфигурационни файлове в настройките за разполагане на ALMAcceleratorSampleSolution и персонализирани настройки за разполагане.

Преди да започнете

Тази статия е ръководство стъпка по стъпка за ръчно настройване на конфигурационните файлове за разполагане. Той предоставя подробности и контекст за действията, които се извършват от приложението ALM Accelerator и тръбопроводите като справка за администраторите, които искат да знаят спецификата на всяка стъпка в процеса.

Препоръчваме ви обаче да конфигурирате настройките за разполагане в приложението ALM Accelerator.

Създаване на JSON файл с настройки за внедряване

Когато файлът customDeploymentSettings.json се съхранява в корена на директорията config , една и съща конфигурация се прилага за всички среди. Ако приемем, че използвате задачи за преобразуване на файлове или заместване на маркери за информация, която е специфична за конкретни среди, можете да зададете стойности за средата в променливите на вашия тръбопровод.

Можете обаче да създадете и специфични за околната среда файлове customDeploymentSettings.json. Съхранявайте ги в поддиректории на конфигурационната директория, наречена за вашите среди. Името на директорията трябва да съответства на променливата EnvironmentName , която сте създали, когато сте настройвали вашия тръбопровод за средите за проверка, тестване и производство. Ако не съществуват специфични за средата настройки за разполагане JSON и директория, тръбопроводите се връщат към конфигурацията в корена на конфигурационната директория.

Екранна снимка на йерархията на конфигурационната директория.

Можете също така да създадете специфични за потребителя конфигурационни файлове като директорията JohannaDev в предишното изображение. Разработчиците могат да ги използват, за да изберат конкретна конфигурация, когато импортират незавършени решения от контрола на източника.

Настройките за разполагане JSON файлът конфигурира препратки към връзки и променливи на средата.

{
    "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. Копирайте предишния образец на JSON код в нов файл с име deploymentSettings.json.

  2. Запишете файла в конфигурационната папка в Git.

Екранна снимка на структурата на конфигурационните папки.

Създаване на референция за връзка JSON

Свойството ConnectionReferencesвъв файла customDeploymentConfiguration.json задава препратки за връзка във вашето решение, след като решението се импортира в среда. ConnectionReferences Също така разрешете потоци, след като решението е импортирано, въз основа на собственика на връзката, който е зададен в променливата.

  1. Създайте връзките ръчно в целевите среди.

  2. Копирайте идентификаторите за връзките.

    • Получете логическото име за препратката към връзката от референтния компонент на връзката във вашето решение.

      Екранна снимка на име на схема за препратка към връзка в решение, осветено в забранено текстово поле под етикета

    • Получете ИД на връзката от URL адреса на връзката, след като я създадете. Например, ако URL адресът е ''https://.../connections/shared_commondataservice/9f66d1d455f3474ebf24e4fa2c04cea2/details, ИД на връзката е 9f66d1d455f3474ebf24e4fa2c04cea2.

  3. Редактирайте файла customDeploymentSettings.json и поставете идентификаторите в свойството ConnectionReferences , както в следния примерен код:

    "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. Ако използвате разширението Замяна на маркери и добавите маркери във вашата конфигурация, както в предишния пример, отворете канала за вашето решение и след това изберете Редактиране>на променливи.

  5. На екрана Променливи на тръбопровода създайте connection_reference_logicalname за свързване <.> В този пример променливата на тръбопровода е именувана connection.cat_CDS_Current.

  6. Задайте стойността на ИД на връзката, която намерихте по-рано.

  7. За да сте сигурни, че стойността не е записана като обикновен текст, изберете Запази тази стойност в тайна.

Където е приложимо, повторете тези стъпки за всяко решение и тръбопровод, които създавате.

Създаване на променливата на средата JSON в конфигурационния файл за разполагане

Свойството EnvironmentVariablesвъв файла customDeploymentConfiguration.json задава Dataverse променливи на средата във вашето решение, след като решението се импортира в среда.

Важно

Когато се експортират решения, контролирани от източника, стойностите на променливите на средата се експортират с решението. Това може да представлява риск за защитата, ако променливите на средата съдържат чувствителна информация. Препоръчваме ви да не съхранявате чувствителна информация в променливи на средата. Един от начините да се уверите, че стойностите на променливите на средата не са контролирани от източника, е да създадете решение специално за променливите стойности на средата във вашата среда за разработка и да зададете тяхната стойност в това решение. Това предотвратява експортирането на стойностите с решението и съхраняването им в контрола на източника.

  1. Копирайте името на схемата за променливата на средата от компонента на променливата на средата във вашето решение.

    Екранна снимка на име на схема на променлива на среда в решение, осветено в забранено текстово поле под етикета Име.

  2. Редактирайте файла customDeploymentSettings.json и поставете името в свойството EnvironmentVariables , както в следния примерен код:

    {
        "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. Ако използвате разширението Замяна на маркери и добавите маркери във вашата конфигурация, както в предишния пример, отворете канала за вашето решение и след това изберете Редактиране>на променливи.

  4. На екрана Променливи на тръбопровода създайте променлива на тръбопровода за всеки маркер във вашата конфигурация; например, variable.cat_TextEnvironmentVariable.

  5. Задаване на стойността на променливата на средата за тази среда.

  6. За да сте сигурни, че стойността не е записана като обикновен текст, изберете Запази тази стойност в тайна.

Където е приложимо, повторете тези стъпки за всяко решение и тръбопровод, които създавате.

Създаване на JSON файл с настройки за разполагане по избор

JSON файлът с персонализирани настройки за разполагане съдържа настройки, които активират потоци от името на потребител, определят собствеността на потоците, споделят приложения за платно с Microsoft Entra групи и създават Dataverse групови екипи след разполагането.

{
  "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. Копирайте предишния образец на JSON код в нов файл с име customDeploymentSettings.json.

  2. Запишете файла в конфигурационната папка в Git.

Екранна снимка на структурата на конфигурационните папки за потребителски настройки за разполагане.

Създаване на променлива на средата по подразбиране JSON в персонализирания конфигурационен файл за разполагане

Свойството DefaultEnvironmentVariablesв customDeploymentConfiguration.json се използва в канала за експортиране, за да зададете Dataverse променливи на средата по подразбиране във вашето решение, когато решението се експортира и съхранява в контрола на източника.

Бележка

Настройките за променливи на средата по подразбиране се прилагат само ако експортният канал е конфигуриран с променливата VerifyDefaultEnvironmentVariableValues = True на тръбопровода.

  1. Копирайте името на схемата за променливата на средата от компонента на променливата на средата във вашето решение.

    Екранна снимка на име на схема на променлива на среда, осветена в забранено текстово поле под етикета Име.

  2. Редактирайте файла customDeploymentSettings.json и поставете името в свойството DefaultEnvironmentVariables , както в следния примерен код:

    {
      "DefaultEnvironmentVariables": [
        [ "cat_TextEnvironmentVariable", "#{defaultvariable.cat_TextEnvironmentVariable}#" ],
        [ "cat_DecimalEnvironmentVariable", "#{defaultvariable.cat_DecimalEnvironmentVariable}#" ],
        [ "cat_jsonEnvironmentVariable", "{\"name\":\"#{defaultvariable.cat_jsonEnvironmentVariable.name}#\"}" ]
      ]
    }
    
  3. Ако използвате разширението Замяна на маркери и добавите маркери във вашата конфигурация, както в предишния пример, отворете канала за вашето решение и след това изберете Редактиране>на променливи.

  4. На екрана Променливи на тръбопровода създайте променлива на тръбопровода за всеки маркер във вашата конфигурация; например, defaultvariable.cat_TextEnvironmentVariable.

Където е приложимо, повторете тези стъпки за всяко решение и тръбопровод, които създавате.

Създаване на Microsoft Entra конфигурация на групово платно JSON

Свойството AadGroupCanvasConfiguration във файла customDeploymentConfiguration.json споделя приложения за платно във вашето решение с конкретни Microsoft Entra групи, след като решението се импортира в среда.

  1. Копирайте идентификаторите за приложението и Microsoft Entra групата за платно.

    • Вземете името на схемата за приложението за платно от компонента на приложението за платно във вашето решение.

      Екранна снимка на име на схема на етикет на приложение за платно, осветена в забранено текстово поле под етикета Име.

    • Вземете ИД на групата от страницата на Microsoft Entra групата в портала на Azure.

      Екранна снимка на ИД на група, осветена в забранено текстово поле до етикета

  2. Редактирайте файла customDeploymentSettings.json и поставете идентификаторите в свойството AadGroupCanvasConfiguration , както в следния примерен код:

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

    Може roleName да бъде CanView,, CanViewWithShare и CanEdit.

  3. Ако използвате разширението Замяна на маркери и добавите маркери във вашата конфигурация, както в предишния пример, отворете канала за вашето решение и след това изберете Редактиране>на променливи.

  4. На екрана Pipeline Variables създайте променлива на тръбопровода за всеки маркер във вашата конфигурация; например, canvasshare.aadGroupId.

  5. Задайте стойността на ИД на Microsoft Entra групата, към която приложението трябва да бъде споделено за тази конкретна среда.

  6. За да сте сигурни, че стойността не е записана като обикновен текст, изберете Запази тази стойност в тайна.

Където е приложимо, повторете тези стъпки за всяко решение и тръбопровод, които създавате.

Създаване на Microsoft Entra групова и екипна конфигурация JSON

Свойството AadGroupTeamConfigurationвъв файла customDeploymentConfiguration.json съпоставя Dataverse екипи и роли Microsoft Entra в групи във вашето решение, след като решението се импортира в среда.

Правата за достъп трябва да се добавят към вашето решение, ако не са създадени ръчно в целевата среда. Една или повече роли могат да бъдат приложени към екип. Ролите предоставят разрешения за компоненти на решения, изисквани от потребителите в групата.

  1. Името Dataverse на екипа може да бъде на съществуващ екип или нов екип, който да бъде създаден и нанесен Dataverse в Microsoft Entra група след импортирането на решението.

  2. Ролите Dataverse могат да бъдат всеки права за достъп в Dataverse който ще бъдат приложени към екипа след импортирането на решението. Ролите трябва да имат привилегии за ресурсите, които решението изисква, като например таблици и процеси.

  3. Вземете ИД на Microsoft Entra групата от страницата "Група " в портала на Azure, както в предишния раздел.

  4. Редактирайте файла customDeploymentSettings.json и поставете JSON в свойството AadGroupTeamConfiguration , както в следния примерен код:

    {
      "AadGroupTeamConfiguration": [
        {
          "aadGroupTeamName": "alm-accelerator-sample-solution",
          "aadSecurityGroupId": "#{team.aadSecurityGroupId}#",
          "dataverseSecurityRoleNames": [
            "ALM Accelerator Sample Role"
          ]
        }
      ]
    }
    
  5. Ако използвате разширението Замяна на маркери и добавите маркери във вашата конфигурация, както в предишния пример, отворете канала за вашето решение и след това изберете Редактиране>на променливи.

  6. На екрана Pipeline Variables създайте променлива на тръбопровода за всеки маркер във вашата конфигурация; например, team.aadSecurityGroupId.

  7. Задаване на стойността на ИД на групата, Microsoft Entra в която да се асоциира с екипа Dataverse.

  8. За да сте сигурни, че стойността не е записана като обикновен текст, изберете Запази тази стойност в тайна.

Където е приложимо, повторете тези стъпки за всяко решение и тръбопровод, които създавате.

Създаване на JSON на собственост върху компонент на решение

Свойството SolutionComponentOwnershipConfiguration във файла customDeploymentConfiguration.json присвоява собствеността върху компонентите на решението на Dataverse потребителите, след като решението се импортира в среда. Присвояването на собственост е полезно за компоненти като потоци, които по подразбиране са собственост на основния потребител на услугата, след като решението е импортирано от тръбопровода, и организациите искат да ги присвоят отново, след като бъдат импортирани.

Свойството SolutionComponentOwnershipConfiguration също така разрешава потоци, които нямат препратки към връзки. Потокът е разрешен от указания потребител, когато не съществуват препратки към връзка, за да се разреши потокът.

Бележка

Текущият тръбопровод прилага само възможността за задаване на собственост върху потоци.

  1. Кодът на типа компонент на решението се основава на типовете компоненти, посочени в справката за solutioncomponent EntityType Web API. Например Power Automate поток е тип компонент 29. Типът на компонента трябва да бъде зададен като целочислена стойност, без кавички.

  2. Получете уникалното име на компонент на Power Automate потока от разопакованото решение.

    Потоците не изискват уникални имена, когато са създадени. Единственият истински уникален идентификатор за поток е вътрешният ИД, който системата му присвоява в решение.

    Екранна снимка на XML файл на работен поток на непакетирано решение.

    Екранна снимка на XML на неопакован работен поток на решение, показващ ИД на работен поток.

  3. Получете имейл адреса на собственика от записа на потребителя в Dataverse или Microsoft 365.

  4. Редактирайте файла customDeploymentSettings.json и поставете JSON в свойството AadGroupTeamConfiguration , както в следния примерен код:

    {
      "SolutionComponentOwnershipConfiguration": [
        {
          "solutionComponentType": 29,
          "solutionComponentUniqueName": "00000000-0000-0000-0000-00000000000",
          "ownerEmail": "#{owner.ownerEmail}#"
        },
        {
          "solutionComponentType": 29,
          "solutionComponentUniqueName": "00000000-0000-0000-0000-00000000000",
          "ownerEmail": "#{owner.ownerEmail}#"
        }
      ]
    }
    
  5. Ако използвате разширението Замяна на маркери и добавите маркери във вашата конфигурация, както в предишния пример, отворете канала за вашето решение и след това изберете Редактиране>на променливи.

  6. На екрана Pipeline Variables създайте променлива на тръбопровода за всеки маркер във вашата конфигурация; например, owner.ownerEmail.

  7. Задайте стойността на имейл адреса на собственика на компонента.

  8. За да сте сигурни, че стойността не е записана като обикновен текст, изберете Запази тази стойност в тайна.

Където е приложимо, повторете тези стъпки за всяко решение и тръбопровод, които създавате.

Импортиране на данни от вашия тръбопровод

Може да искате да импортирате данни за конфигурация или семена във вашата Dataverse среда, след като разположите вашето решение в целевата среда. Тръбопроводите са конфигурирани да импортират данни с помощта на инструмента за конфигуриране намигриране, достъпен чрез NuGet. Научете повече за управлението на конфигурационните данни.

Когато конфигурационните данни се съхраняват в корена на директорията за конфигуриране , същите конфигурационни данни се разполагат във всички среди. Можете да създавате специфични за средата конфигурационни файлове с данни. Съхранявайте ги в поддиректории на конфигурационната директория, наречена за вашите среди. Името на директорията трябва да съответства на променливата EnvironmentName , която сте създали, когато сте настройвали вашия тръбопровод за средите за проверка, тестване и производство. Ако не съществуват специфични за средата конфигурационни данни и директория, тръбопроводите се връщат към конфигурационните данни в корена на конфигурационната директория.

  1. Клонирайте Azure DevOps хранилище, където вашето решение трябва да бъде контролирано от източника и където сте създали своя конвейер за решения YAML към вашата локална машина.

  2. Ако все още не сте го направили, създайте директория с име config в папката config в папката с решения.

    Екранна снимка на конфигурационната директория под директорията на решението в локалната репо.

  3. Инсталирайте инструмента за мигриране на конфигурацията. Следвайте инструкциите в Изтегляне на инструменти от NuGet.

  4. Отворете Configuration Migration Tool, изберете Създаване на схема и след това изберете Продължи.

  5. влезте в клиента, от който искате да експортирате вашите конфигурационни данни.

  6. Изберете средата.

  7. Изберете таблиците и колоните, които искате да експортирате.

  8. Изберете Запиши и експортирай. Запишете данните в конфигуратора на пътя на директорията\ConfigurationMigrationData във вашата локална Azure DevOps репо, в папката за решението, за което данните трябва да бъдат импортирани.

    Бележка

    Тръбопроводът търси тази конкретна папка, за да импортира данните след импортирането на вашето решение. Уверете се, че името на папката и нейното местоположение са точно както е дадено тук.

  9. Когато бъдете подканени да експортирате данните, изберете Да.

  10. Изберете същото местоположение за експортираните данни, изберете Запиши и след това изберетеЕкспортиране на данни.

  11. Когато експортирането завърши, разархивирайте файловете от файла .zip данни в директорията ConfigurationMigrationData . Изтрийте файловете с данни.zip и SampleData.xml .

    Екранна снимка на данните за мигриране на конфигурацията, разархивирани в директорията ConfigurationMigrationData.

  12. Ангажирайте промените с данните си Azure DevOps.

Следващи стъпки