从默认环境迁移应用和流

本白皮书解释了组织和管理员如何规划从默认环境中迁移其应用和流。

作者:Ravi Chada(Microsoft),Rui Santos(Microsoft)

备注

您可以从浏览器中选择打印,然后选择另存为 PDF 来保存或打印本白皮书。

默认环境

为每个租户创建一个默认环境,该租户中的所有用户都可以访问该环境。 默认环境是在最接近 Microsoft Entra 租户的默认区域的区域中创建的,命名如下:[Microsoft Entra 租户名称](默认)。 每当新用户注册 Power Apps 或 Power Automate 时,他们都会被自动添加到默认环境的制造者角色中。 不会自动将任何用户添加到默认环境的环境管理员角色。

您不能删除默认环境,也不能手动备份默认环境。 系统备份会持续进行。 默认环境限制为 1 TB 的存储容量。 默认环境具有以下功能:

  • 3 GB Dataverse 数据库容量
  • 3 GB Dataverse 文件容量
  • 1 GB Dataverse 日志容量

在创建新环境之前进行的容量检查会在计算您是否有足够的容量来创建新环境时排除默认环境的随附存储容量。 要存储更多数据,可以创建生产环境。

在默认环境中,拥有 Microsoft 365 许可证的组织员工可以创建应用和云端流。 默认环境成为这些员工开始构建应用和流的第一个演练场工作室。 因为不可能从默认环境中删除环境创建者角色,所以创建者开始构建个人生产力应用和流,并在他们的团队中共享,以便其他人受益。 大多数组织通常将默认环境重命名为个人生产力

管理员被动地发现许多应用和流是在默认环境中创建的。 在以下场景中,应用或流可能不适合处于默认环境中,例如:

  • 应用以类似生产的方式与许多用户共享。
  • 应用使用包含敏感数据的 Excel 工作簿。
  • 基于 SharePoint 列表的应用正在获得许多数据交互,比如插入或更新。
  • 应用或流正在使用新的数据丢失防护 (DLP) 策略中不允许的连接器。
  • 自定义连接器在默认环境中启用和使用,而不是在专用环境中受到保护。

上述场景值得考虑,并说明您应该开始将这些应用和流程从默认环境迁移到它们自己的开发人员环境或另一个共享环境中。 其他有影响的因素是与默认环境相关的限制。

一旦达到限制,监视 Power Platform 的卓越中心 (CoE) 团队就会被迫做出反应,这将对默认环境中运行的应用产生负面影响。 此限制可能也是管理员或 CoE 团队需要定期执行的任务。 有三个主要阶段:

  • Power Platform 对象的标识
  • 移动 Power Platform 个对象
  • 清理 Power Platform 个对象

有不同的方法可以导出应用和流,以便将它们移动到新的环境中。 解决方案是一个单一的文件,可以包含制造者在 Power Platform 中构建的几乎所有内容,并将它们移动到一起。 画布应用和云端流可以直接导出。

随着时间的推移,Power Platform 对象已逐渐成为解决方案感知对象。 现在,默认情况下,应用和流可以被解决方案所感知,尽管这需要手动激活。 制作者仍然可以创建来自 make.powerapps.com 和 make.powerautomate.com 的应用和流,可以归类为非解决方案感知,这些可以单独导出,或添加到解决方案中。 通过添加解决方案,制作者可以利用环境变量和连接引用来跨环境配置和部署端点。

我们的目标是将所有 Power Platform 组件添加到一个解决方案中,从而允许多个组件作为一个单元在不同环境之间轻松移动。

Power Platform 对象的标识

第一步是确定需要转移或清理的应用、流和资产。 CoE 初学者工具包提供所有应用和流的清单,且 Power BI 报告有助于确定使用情况。 这一步有助于您评估应用的使用情况,并且应该有助于对其进行标记。 在您进行练习时,请确保标记应该迁移到另一个环境的应用和流。 标记可以基于所使用的连接器、用户位置、用户部门等等。 本文还概述了一种根据数据丢失防护 (DLP) 实践来识别应该清理或重新定位的项目的方法。

移动 Power Platform 个对象

如果组件被标记为移动到不同的环境,则有选项可用于移动应用。 移动是一个交互式过程,需要某种程度的制作者交互。 移动应用或流的复杂程度随着用于构建应用或流的组件的组合而增加。

例如,一个有六个屏幕的应用在多个屏幕上有 10 个按钮。 让我们假设这 10 个按钮分别调用一个单独的流。 此外,还有一些流每天都会被触发,以修复数据或将数据与另一个系统集成。 我们还假设有一个 AI Builder 图像处理模型用作自动化的一部分。 若要移动此类应用,必须将所有组件添加到解决方案中,并且在确认完成之前,必须正确调整和测试连接引用。

在另一种情况下,假设有一个画布应用使用 Office 365 连接。 在这种情况下,制作者只需要将画布应用添加到解决方案中。

清理 Power Platform 个对象

如果组件被标记为要进行清理,那么有两个主要选项。 第一个选项是直接删除,第二个选项是在备份后删除。 在后一种备份情况下,在移动对象时可能会有一些重叠的步骤。

例如,CoE 团队管理员发现,大多数开发者创建测试应用和流是为了学习。 然后,开发者放弃应用和流,这可以通过查看使用指标来确认。 另一种方法是隔离应用。 如果没有人咨询该应用,也可以删除该应用。

保持沟通策略起着关键作用。 管理员应计划沟通:

  • 建立开发者在新环境中启动应用时需要允许的连接。
  • 目标环境中应用的新 URL。
  • 导航到正确的环境。

其中一些用于重新定位对象的解决方案是现成的,可能需要一个独立的 Power Apps 和 Power Automate 许可证,使用户能够跨数据源创建和运行应用,这些数据源超出了 Microsoft 365 的范围。

策略

当基于策略时,从默认环境中识别和移动应用和流的整个过程更有可能成功。 您应该考虑多种策略。

DLP 策略

数据丢失防护 (DLP) 策略充当防护来帮助阻止用户意外泄露组织的数据和保护租户中的信息安全。 DLP 策略实施规则来指定为每个环境启用哪些连接器,以及可以将哪些连接器一起使用。 连接器分类为仅业务数据不允许业务数据阻止。 在同一个应用或流中,仅业务数据组中的连接器只能与该组的其他连接器一起使用。 我们建议您至少设置一个策略。

使用 DLP 识别对象

基于 DLP 策略的识别有助于为应用和流定义目标环境。 可能有应用或流正在使用被 DLP 阻止的连接器,或者混合使用业务和非业务连接器,这些连接器在 DLP 激活后会停止工作。

为了防止潜在关键对象因 DLP(CoE 初学者工具包的一部分)而停机,您可以找到 DLP 编辑器(影响分析)工具。 DLP 编辑器的目标是让管理员看到现有策略的影响或策略更改的潜在影响。 它为管理员提供受影响的应用和流的视图,以及强制实施新策略或更新策略时的禁用资源。 该应用可用于审查现有策略、更改现有策略,并通过联系开发者并告知他们其应用或流的最佳行动方案来降低风险。

更新现有的 DLP 策略以评估影响。 请阅读使用 CoE 初学者工具包建立租户卫生机制一文,了解有关 DLP 编辑器的更多信息。

在开启 DLP 功能之前,您可以识别哪些应用和流受到影响,并向开发者发出警报。 DLP 编辑器可以将受影响的所有应用和流的列表发送到电子邮件地址,这将为每种类型的对象生成一个 .csv 文件。

使用 DLP 编辑器版本 2.0,在影响分析区域中,选择将受影响的应用和流导出为 CSV

使用 DLP 编辑器版本 2.0。

每个生成的 csv 文件(flow.csv 和 apps.csv)都包含以下信息:

  1. 应用和流的名称。
  2. 应用和流的所有者。
  3. 应用和流的所有者邮件。
  4. 应用和流使用的所有连接。
  5. 用于标识对象的应用和流的 ID。
  6. 应用和流所在的环境 ID。

请注意,连接为您提供应用或流使用的所有连接的列表。 如果您需要准确识别哪个连接器受到有问题的 DLP 的影响,此时就需要自动化。 我们正在评估在工具中改变这种情况。

识别连接的实施示例:

  1. 创建一个 Power Automate 流。

  2. 使用获取租户 DLP 策略连接器指定有问题的 DLP。

  3. 结果是两个数组,业务数据和非业务数据。 例如,Twitter 连接器显示以下代码:

    [
      {
        "id": "/providers/Microsoft.PowerApps/apis/shared_twitter",
        "name": "Twitter",
        "type": "Microsoft.PowerApps/apis"
      }
    ……
    ]
    
  4. 从此列表中,您可以访问与 csv 应用或流连接列的名称列表相匹配的连接器名称。

  5. 通过将 csv 转换为 Excel 格式并将其放入您的 OneDrive,您可以从 Power Automate 中读取所有受影响的应用和流。 根据将连接与连接器名称进行比较的逻辑,检查哪个连接受到影响。

  6. 在您找到导致影响的连接之后,生成一个新的列表,其中包含应用或流 ID 以及受 DLP 影响的连接器。

  7. 使用先前的信息通知开发者未来的影响。 如果应用或流可以删除或需要迁移到另一个环境,您可以使用 Power Cards 收集来自开发者的反馈。

根据您的分析,如果您确定受影响的流没有被使用,您可以将其隔离,并向开发者发送电子邮件,说明如何将它们移动到不同的环境。 这鼓励一种自己动手 (DIY) 的文化,并消除影子 IT。 在某些情况下,您可能希望从 DLP 中免除一些对象。 例如,您可能希望仅对已创建的新资源应用特定的 DLP,并排除当前资源。 有关 DLP 资源豁免的更多信息,请参阅 DLP 资源豁免

实际上,您的环境策略是通过 DLP 定义的,并为在默认环境中开发的应用和流程提供目标。

环境策略

制订环境策略需要以支持在组织中高效开发的方式配置环境和其他数据安全层,同时保护和组织资源。 有关管理环境预配、访问管理及控制其中资源的策略至关重要:

  • 保护数据和访问。
  • 以兼容的方式管理默认环境。
  • 管理正确数量的环境,以避免蔓延和节约容量。
  • 促进和实施正常的应用生命周期管理 (ALM)。
  • 组织逻辑分区中的资源。
  • 通过将生产阶段的应用放入专用环境来识别这些应用的支持操作(和帮助台)。
  • 确保数据在可接受的地理区域(出于性能和合规性考虑)中存储和传输。
  • 确保隔离正在开发的应用程序。
  • 向使用服务的业务最终用户或业务部门提供内部发票服务。

您应该有成熟的部门实现自立,并且已建立好现有的 ALM 流程。 在这种情况下,环境提供隔离并根据部门组织资源。 基于此的策略可以通过为每个部门创建单独的环境来实现。 这些环境随后成为默认环境中应用和流的目的地。

通信策略

在迁移过程中,有效的通信至关重要。 在迁移过程的所有阶段都会进行通信。 明确的通信有助于利益相关者之间的理解和协作。 通信支持信息的顺畅流动,确保每个相关人员都充分了解迁移计划、进度和任何潜在挑战。

作为迁移和清理工作的一部分,确保该过程对开发者、利益相关者和领导层来说是顺利的。 制定一个策略,说明如何最好地通信以及在什么时候需要通信,这将为您的目标提供一致性,并有助于所有相关人员的通信。 一些可供考虑的选项包括:

  • 将 CoE 初学者工具包用作资产跟踪器。
  • 添加自定义云端流,在不同阶段发送通知。
  • 创建模板电子邮件,发送出去与开发者进行沟通。

需要注意的几个事项:

  • 应用的 URL 的更改。 应用的用户需要在默认环境下更新应用的任何书签。
  • 如果有一个基于 URL 的 HTTP 触发流,则必须在相关流中更新该流,以确保它仍充当 webhook。
  • 为开发者和应用用户提供详细的步骤,以便在迁移完成后建立联系。 当用户第一次从新环境中启动应用时,用户不需要担心创建连接。

建立通信的良好开端需要一个可扩展的自助服务模型,并且对用户来说更加实时,而不仅仅是针对单个用户的电子邮件或通讯组列表。 如果计划建立一个 SharePoint 站点,可以使用一个模板来创建内部 Microsoft Power Platform 中心。 此中心成为了解策略和指南的常见位置,以便决策者正确选择构建目标以及实施指南的位置。

您可以利用 CoE 初学者工具包中的一些现有解决方案组件,如设置非活动通知组件设置开发人员合规性组件。 这些组件附带有电子邮件模板,可以复制它们以满足您的目的以及从默认环境中迁移的需要。 此外,还可在通信网站上捕获一些成功案例。

访问群体

在迁移过程中,通常会有不同的受众参与通信。 以下是最典型的关键利益相关者及其角色:

  • 应用程序所有者:应用程序所有者是负责开发、维护和管理特定应用程序的个人或团队。 他们对其应用的功能、工作流和配置有深入的了解。 与应用所有者的通信对于了解他们的应用特定需求、收集反馈、解决问题以及确保他们的应用顺利迁移到新环境至关重要。
  • 应用程序用户:应用程序用户是定期使用应用程序执行其任务或工作流的个人。 他们对应用的技术知识和熟悉程度可能各不相同。 与应用用户的通信非常重要,可以告知他们有关迁移的信息,提供任何可能发生的更改或中断的更新,提供培训或支持以确保无缝转换,并最大限度地减少对他们日常运营的影响。
  • 部门负责人或经理:部门负责人或经理在迁移过程中发挥着重要作用,因为他们负责监督各自部门的运营和战略目标。 他们需要了解迁移时间表、潜在影响和好处。 与部门主管的通信使他们能够提供必要的指导,使迁移与部门目标保持一致,并确保团队内部的顺利协调。
  • IT 或技术团队:IT 或技术团队负责迁移的基础设施、系统和整体技术方面。 他们参与迁移过程的规划、执行和支持。 与 IT 团队的通信对于讨论技术要求、依赖关系、安全注意事项以及成功迁移所需实施的任何必要的基础架构或配置更改至关重要。
  • 安全和合规团队:安全和合规团队在迁移过程中确保数据安全、隐私和法规合规性方面发挥着关键作用。 它们提供指导并确保采取适当的措施来保护敏感信息。 在整个迁移过程中,与安全和合规性团队的通信包括讨论安全要求、加密协议、访问控制以及任何与合规性相关的注意事项。
  • 执行管理层:应随时向执行管理层(包括 C 级高管或高级领导)通报迁移过程。 他们可能不需要详细的技术信息,但应该了解项目的目标、进展和对组织的潜在影响。 与高级管理层的通信有助于确保得到他们的支持、与战略目标保持一致以及迁移的资源分配。

考虑到每个受众的具体需求、关注点和技术了解水平,为他们量身定制通信策略和信息非常重要。 与所有利益相关者进行清晰、及时的通信可促进协作,确保顺利协调,并减轻迁移过程中的任何潜在挑战。

节奏

在迁移过程中,与利益相关者通信的节奏或频率根据项目的特定需求和动态而变化。 在整个迁移过程中,建立定期、一致的通信以使风险承担者了解信息、解决问题并保持一致性是非常重要的。 以下是确定与不同利益相关者通信的节奏时的一些考虑因素:

  • 应用所有者: 在整个迁移过程中与应用所有者保持频繁的沟通非常重要。 这包括定期更新迁移进度,解决任何问题,并在必要时让应用所有者参与决策。 根据应用的复杂性和重要性,通信的频率会有所不同,但建议定期检查并及时回复询问。
  • 应用用户: 通过定期沟通渠道与应用用户互动,让他们了解迁移情况。 这应该包括公告、电子邮件、简讯,甚至专门的培训课程或研讨会。 与应用用户通信的频率可能会有所不同,但关键是要在关键的里程碑时刻提供更新,告知他们任何可能影响他们的变化或中断,并在整个过程中提供支持和指导。
  • 部门负责人和经理: 与部门负责人和经理的沟通可以定期进行,也可以根据需要进行,具体取决于迁移到其部门的重要性。 定期更新整体进度、时间表及其对团队的影响。
  • IT 或技术团队:与参与迁移的 IT 和技术团队进行定期沟通。 这包括持续协作、共享技术问题的更新,以及协调任何必要的配置或更改。 在规划和分析阶段,通信频率通常较高。 在实施阶段,定期举行接触点或会议,以确保顺利协调。

资源配置

有效管理资源对于成功迁移至关重要。 以下是在迁移期间进行资源管理时需要考虑的一些关键方面:

  • 资源识别: 识别迁移项目所需的资源,包括负责迁移前准备、数据迁移、测试、部署、配置、迁移后支持等任务的个人或团队。 确定每个角色所需的特定技能、专业知识和可用性。
  • 资源分配: 根据资源的技能、可用性和工作负载容量将资源分配给角色和任务。 确保适当分配资源,以平衡工作量并满足项目期限。 考虑任何可能影响资源分配的依赖关系或约束,例如跨多个项目共享资源。
  • 技能发展和培训: 评估团队内部的技能和知识差距,并提供必要的培训或技能提升机会,以确保资源为分配的任务提供足够的装备。 这可能包括提供培训课程、研讨会或相关资源和文档的访问权限。
  • 沟通和协作: 促进迁移中涉及的资源之间的有效沟通和协作。 鼓励定期的状态更新、协调会议和知识共享,以确保所有团队成员一致、知情,并为共同的目标而共同努力。
  • 应急计划: 预测潜在的资源限制或风险,并制定应急计划。 确定关键岗位的后备资源或对其进行交叉培训,以缓解任何不可预见的挑战,如意外缺勤或资源限制。
  • 利益相关者参与: 让利益相关者(如应用程序所有者、部门负责人和管理层)了解资源分配以及对时间表或可交付成果的任何潜在影响。 定期传达资源更新、进度报告以及对资源计划的任何调整,以管理预期并保持透明度。

对象的单独迁移

应用和解决方案之间的区别非常重要。 导出和导入应用只会影响该对象。 解决方案是一个可以包含多个应用、流和其他对象的容器。

导出和导入画布应用(传统方式)

详细步骤记录在导出画布应用包导入画布应用包中。

这种导出应用的方法是一种传统方式。 虽然受支持,但我们建议您使用解决方案。 解决方案使您能够迁移多个组件,而不仅仅是一个资源。

导出和导入流(传统方式)

以下步骤描述了如何导出流。

  1. 选择 "…" 菜单,选择导出,然后选择包 (.zip)
  2. 输入包的名称和描述。 然后,您可以配置默认设置并添加在导入阶段可以访问的注释。
  3. 选择右下角的导出按钮下载包。 如果您的下载没有自动开始,您可以选择下载按钮。

以下步骤描述了如何导入流。

  1. 选择导入按钮。
  2. 上传包文件,并等待屏幕显示包的详细信息。
  3. 配置流设置时,您可以选择创建新的流或使用包中的流定义更新现有的流。
  4. 选择设置流所需的连接。 在成功配置所有必需的设置后,您应该会看到导入按钮变为可用。

导入流后,必须将其激活。 如果流有任何连接引用,则激活流的用户必须能够访问这些连接。 否则,连接所有者可以向激活用户授予访问权限。

这种导出云端流的方法是一种传统方式。 虽然它受支持,但我们建议您使用解决方案,这能够迁移多个组件,而不仅仅是一个资源。

导出和导入模型驱动应用

模型驱动应用始终是解决方案的一部分。 打包的应用包含在解决方案文件 (.zip) 中,在从源环境成功导出并导入目标环境后,可以基于用户的安全角色与用户共享。

导出解决方案导入解决方案中介绍了详细的分步流程。

导出和导入 Microsoft Copilot Studio 机器人

您可以使用解决方案导出和导入机器人。 使用解决方案导出和导入机器人中介绍了详细的步骤列表。

导出和导入 Power Pages 站点

迁移页面包括从源 Microsoft Dataverse 环境导出现有配置,然后将其导入目标 Dataverse 环境。 有些先决步骤必须在目标环境中执行。 准备工作完成后,可以使用配置迁移工具导出门户配置数据。

SharePoint 窗体应用 – 默认环境的特例

SharePoint 表单应用程序 只能与一个环境关联,如果未进行其他配置,则位于默认环境中。 迁移所有应用需要将目标设置为不同的环境,而不是默认环境。 现有的自定义窗体不会自动迁移到新指定的环境。 只能为 SharePoint 自定义窗体指定生产环境。 接下来是手动过程,就像移动画布应用一样。

备份 Microsoft Power Platform 对象

大多数 Microsoft Power Platform 对象导出为 zip 文件。 如果没有,他们至少有一种文件格式。 这些文件的原始格式(例如 zip 文件或随其提供的任何扩展名)可以添加到任何文件存储位置或您所选择的存储库。 值得一提的几个选项是 Azure DevOps、GitHub、SharePoint、One Drive 或任何其他支持所有文件格式的解决方案。

大量迁移选项

如果应用或流的功能与之前相同,则迁移成功。 但是,有些元素是不能转移的:

  • 有关流 过去运行的流运行数据 - 有关流运行的数据仅存储 28 天。 如果您需要数据,则可以使用 CoE 初学者工具包或设置导出到数据湖来导出和存储数据。 如果与数据导出功能一起使用,最新版本的 CoE 初学者工具包具有流运行数据。
  • 画布应用的 版本 - 当制作者迭代开发流程时,可能会创建多个版本。 不能迁移以前的版本。 只能迁移最新版本。
  • 应用程序或流或使用连接器 访问的数据 - 导出过程中仅包含应用程序元数据。

应用或流中的任何协作评论也不包括在内。

本文概述了一些可能性。 在决定之前,仔细考虑每种可能性的影响和优势是很重要的。

全部迁移 – 数据库备份和恢复选项

与大多数环境类型类似,默认环境也会备份。 这些系统备份是自动执行的。 默认环境没有按需选项,因此需要支持请求。 可以将备份恢复到新环境中,并将所有数据保留在 Dataverse 内。 此选项只是向读者展示它的存在,并告诉读者什么时候应该考虑。 它不应该作为主要选择,因为它只会产生部分迁移。

  • 支持: Dataverse,Dynamics 应用
  • 不完全支持:画布应用程序、组件库、自定义页面、 Power Automate Microsoft Copilot Studio

未完全受支持表示在迁移过程中可能会丢失数据,并且需要更多步骤。

先迁移元数据,然后迁移数据

推荐的方法是使用解决方案来移动元数据,然后可以使用数据流、Azure 数据工厂或其他首选工具来传输数据。 由于连接器的多样性,从开始到结束的完全自动化可能无法在所有情况下实现,但非常接近是可能的。

概括地说,这些步骤是:

  1. 向解决方案添加应用。
  2. 向解决方案添加流。
  3. 添加现有机器人。
  4. 调整应用和流中的连接引用。
  5. 检查解决方案依赖项并添加对象。
  6. 导出解决方案。
  7. 导入解决方案。
  8. 传输数据。

检查解决方案依赖项

只有当您将所有相关组件添加到解决方案中或者它们在目标环境中可用时,才能确保在目标环境中成功导入解决方案。 如果缺少组件,那么解决方案的导入很可能会失败。 为了确保所有必需组件都存在,最好结合使用以下选项:

  • 将选定的组件手动添加到解决方案中。 在这种情况下,假设您知道所有依赖组件在目标环境中都是可用的。

  • 使用解决方案中的显示依赖项按钮,让系统为您识别依赖项。 您可以添加所有依赖项,或者选择性地只添加目标环境中不存在的依赖项。

    该图显示了帐户表的依赖组件示例。

向解决方案添加组件(手动)

假设创建了一个解决方案,制作者需要使用添加现有组件菜单选项添加现有应用、流或机器人。

该图显示了将现有组件添加到解决方案中。

调整连接引用

画布应用和流以不同方式处理连接。 流对所有连接器使用连接引用,而画布应用仅将它们用于隐式共享(非OAuth)连接,例如 SQL Server 身份验证。

更新应用以使用连接引用而不是连接

添加到解决方案时不支持解决方案的画布应用不会自动升级为使用连接引用。 只有在将数据源添加到应用时,连接引用才会与画布应用相关联。 要升级应用,您必须:

  1. 将非解决方案感知的应用添加到解决方案中。
  2. 从应用中移除连接。
  3. 在解决方案中创建新的连接引用。
  4. 添加包含关联连接引用的连接。

更新流以使用连接引用而不是连接

当流不在解决方案中时,它使用连接。 如果随后将该流添加到解决方案中,它最开始会继续使用连接。 可以通过以下两种方式之一更新流以使用连接引用而不是连接:

  • 如果流在非托管解决方案中导出然后导入,连接将被删除,被替换为连接引用。

  • 打开解决方案流时,流详细信息页面上的流检查器将显示使用连接引用的警告。 警告消息将包含可选择删除连接以便可以添加连接引用的操作。 选择该操作将从流中的触发器和操作中删除连接,并允许选择和创建连接引用。

向解决方案添加对象(自动化)

您可以使用 PowerShell 命令将应用批量移动到解决方案中。 向解决方案添加预先存在的画布应用和云端流也可以通过命令行完成。 安装最新的 PowerShell 模块来尝试此选项。 这两个主要命令是 Set-PowerAppAsSolutionAwareSet-FlowAsSolutionAware

安装完模块后,插入您自己的环境 ID、应用 ID、流 ID 和解决方案 ID。

对于画布应用:

Set-PowerAppAsSolutionAware -EnvironmentName {Environment ID} -AppName {App ID} -SolutionId {Solution ID}

对于流:

Set-FlowAsSolutionAware -EnvironmentName {Environment ID} -FlowName {Flow ID} - SolutionId {Solution ID}

连接引用 是连接引用表中的数据条目。 要将连接引用用作应用或流的一部分,需要修改核心应用或流定义。 您需要使用连接引用替换 connectionReferences 节点。

解决方案导入和导出

假设解决方案已经就绪,自动化的下一阶段可以通过多种方式完成:

  • 将解决方案手动导出导入到目标环境中。

  • 使用一次可以移动多个解决方案。

  • 使用 Power Platform 构建工具任务执行多种操作,如打包解决方案、解包解决方案、导出解决方案和导入解决方案。 DevOps 提供自动化应用生命周期管理 (ALM) 的能力,这些任务都是为了支持 Microsoft Power Platform 的 ALM 而构建的。

Power Platform 命令行接口 (CLI) 还提供导出和导入解决方案的选项。 所有与解决方案相关的命令都可以用于构建、导出和导入解决方案。 您还可以使用 CLI 传入和传出数据

一个对开发者友好的选择是使用旨在使 Power Platform 的 ALM 大众化的管道。 将 ALM 自动化和持续集成/持续部署 (CI/CD) 功能整合到一项功能服务中,对于所有的开发者、管理员和开发人员来说都更容易实现。

创建连接(手动)

在设置导入操作之前,在目标环境中创建应用或流所需的缺失连接。 有关如何创建连接的更多信息,请参阅在 Power Automate 中管理连接

数据迁移

数据迁移有多种选择,范围从手动到完全自动化。

  • 使用 Excel 工作簿手动导出和导入数据。
  • 可以开发一个 Power Automate 云端流,从源表中提取数据,并直接写入目标。 然而,这要求开发者使用 Dynamics 365 Connector 或 Dataverse(旧)连接器。 目前,Dataverse 连接器不支持跨环境连接。 此功能是为未来设计的,一旦发布,就可以用来将数据从一个移动到另一个。
  • 配置迁移工具(CMT) 是一种用于门户迁移的工具,但也可用于常规数据迁移。 CMT 也可以与 PowerShell 一起使用。 PAC CLI 工具能够调用 CMT。
  • 数据流可用于创建环境之间的映射,并用于移动数据。 HTTP Web 连接器可以用作 Dataverse 的替代方案。
  • Azure 数据工厂可以与 Dataverse 连接器一起使用,从源中提取数据并将其插入到目标中。

鉴于默认环境的大小有限,上述选项之一应该足以将数据移出默认环境。

清理注意事项

对于长时间没有使用和更新的应用和流,清理是一个好主意。 就清理而言,管理员可以考虑不同的途径。

  • 决定导入数据的顺序。 依赖项最少的表排在最前面,依赖项最多的表排在最后。
  • 并非所有字段都需要映射。 例如版本修改日期创建日期等字段以及其他一些系统字段不需要映射。
  • 如果要保留原始的创建日期,请使用将源创建日期字段映射到目标表上的 OverRiddenCreatedOn 字段。
  • 无法迁移审核数据。
  • 除非有意,否则不要启用任何基于数据插入触发的工作流或流。 这会增加数据迁移的时间。

标记选项

CoE 初学者工具包目前没有标记选项。 但是,您可以添加到初学者工具包中,作为自定义项。

创建一个名为标记的表,并与应用、流和其他库存表建立多对多 (N:N) 关系。 然后,您可以创建一个标记,并将这些记录与适当的库存项目相关联。 为了获得更好的用户体验,您可以在应用、流和其他清单表的窗体上嵌入网格。 建议使用此选项,因为它具有引用一致性。

在每个库存表上创建一个文本字段,并使用它来捕获文本(标记),供以后使用。

如果您想要一个更固定的列表,那么创建一个全局选项集,并将其添加到所有的库存表及其窗体中。

隔离选项

如果您不确定某些应用的必要性,您可以尝试将其隔开一段时间,并在此期间将其隔离。 该应用只能由所有者使用。 经过一段适当的时间后,如果没有收到所有者的响应,您可以将其从环境中删除。

流不支持隔离状态,但是可以通过停止流并检查它是否被所有者再次激活来使用类似的方法。

在这两种情况下,与所有者进行适当的沟通是很重要的。

仅删除选项

如果确实不会丢失生产力和重用对象,则该选项最适合。 大多数测试流和应用都属于这一类。

在这种情况下,一旦确定对象列表,就可以开发 PowerShell 批处理,并向其传递 csv 列表,然后删除所有这些资产。

当您循环遍历应用和流的 ID 时,可以使用下面的命令将其从默认环境中删除。

  • Remove-AdminFlow -EnvironmentName Default-[Guid] -FlowName [Guid]
  • Remove-AdminPowerApp -AppName [Guid] -EnvironmentName [Guid]

对象备份和删除选项

例如,假设 Power Automate 流创建来解决一个特定的季节性需求,但是它已经很长时间没有被使用了。 在这种情况下,最好在删除组件之前备份组件。

要备份组件,可以使用单独迁移或批量迁移选项来生成导出的解决方案。 然后可以将其添加到您选择的文件存储库或 OneDrive 位置。

保护备份后,您可以应用删除选项来完成清理过程。

在许多情况下,这些是测试流和应用由开发者创建,作为他们个人生产力学习和实验的一部分。

结束语

Power Platform 是一款面向平民开发者和专业开发者的工具。 默认环境使用应该主要集中在使用 Microsoft 365 产品的个人生产力上。 所有其他应用和流开发都应该在指定的共享、个人或开发者环境中进行。 强烈建议开发基于 DLP 的独立环境策略,这可以帮助开发者在正确的环境中开发他们的应用和流。 制定通信策略并为用户提供学习策略、实施解决方案以及开发应用和流的最佳实践的自助服务模式也有很大的好处。 还可在通信网站上捕获一些成功案例。 内部发布的成功案例有助于开发者与创意联系起来,并使他们对使用 Power Platform 可以实现的可能性持开放态度。

在迁移或移动特定对象时,强有力的治理策略是必不可少的。 有多种策略可用于迁移对象,包括单独迁移和批量迁移。 最佳选择取决于我们的组织策略。 解决方案是组织应用组件并使迁移更简单的最推荐方法。