在 Power Platform 中扩展管道
管道可以定制,以满足组织的独特需求。 例如,您可以添加批准,通过服务主体进行部署,并与记录、Azure DevOps、GitHub 等内部系统集成。 因为使用了 Microsoft Dataverse 业务事件,所以业务逻辑可以在 Power Automate 或各种其他订户中执行。 无论您的管道在内部是基本的还是复杂的,对于外部的制作者来说,部署体验仍然是简单的。
重要提示
- 新的管道扩展正在各地区逐步推广,在您所在的地区可能还不可用。
- 现有管道客户可能需要更新 Power Platform 管道应用程序以启用新功能。 您可以在 Power Platform 管理中心管理更新。
- 在 Power Apps (make.powerapps.com) 中创建的个人管道无法扩展。
提供受控扩展
管道部署通过多个预定义的步骤进行,直到部署完成。 受控扩展将自定义步骤插入到可以执行自定义业务逻辑的流程中。 这就像您自己的私人火车,可以控制它停在哪里以及是否继续。
启用后,每个扩展都会在部署过程中的不同点插入一个自定义步骤。 扩展可以单独使用,也可以一起使用。
导出 前需要步骤允许在提交部署请求时运行自定义验证逻辑。 在这个步骤被标记为完成之前,管道不会从开发环境中导出解决方案。 仅在管道的第一阶段启用此功能。 例如,用户帮助测试 (UAT)。
Is Delegated Deployment 使用服务主体或管道阶段所有者的身份而不是请求创建者的身份来执行部署。 此身份确保了制作者可以在目标环境中无需提升(或任何)访问权限的情况下请求部署。 需要授权身份的批准。
部署 前所需步骤提供了额外的灵活性,以便在部署获得批准后插入自定义步骤。 例如,如果需要最终批准。
通过启用受控扩展插入的步骤处于挂起状态,直到您的业务逻辑执行并最终通知管道主机完成或拒绝该步骤。 制作者可以看到部署何时挂起,以及取消他们的部署请求,直到部署的最后一步。
备注
托管和非托管解决方案项目导出后,系统就将其存储在管道主机中,并禁止任何篡改或修改。 每个版本的同一个托管项目将按顺序部署到管道中的所有后续阶段。 这确保了任何解决方案都无法绕过 QA 环境或审批流程。
了解管道触发器和操作
管道部署的每个步骤都会在该步骤开始和完成时触发一个实时事件,您可以为该步骤启动自定义逻辑。 启用受控扩展时,会产生额外的触发器。 这些对应于在管道阶段启用扩展时插入的自定义步骤。
此处表格显示了每个扩展所需的触发器和操作。 每个触发器的输出参数可以在云端流的后续步骤中使用。
受控扩展 | 步骤启动触发器 | 步骤完成触发器 | 未绑定操作 | 要使用的连接 |
---|---|---|---|---|
需要预导出步骤 | OnDeploymentRequested | 不可用 | UpdatePreExportStepStatus | 有权更新部署阶段运行记录的任何身份 |
委派部署 | OnApprovalStarted | OnDeploymentCompleted | 按照管道阶段上的配置,以服务主体或或管道阶段所有者的身份创建连接。 管道阶段所有者必须是 Microsoft Entra ID 中服务主体的所有者。 | |
需要预部署步骤 | OnPreDeploymentStarted | OnPreDeploymentCompleted | UpdatePreDeploymentStepStatus | 有权更新部署阶段运行记录的任何身份 |
备注
所有部署的 OnDeploymentRequested 触发器。
触发器
触发器在管道主机环境内 Power Automate 云端流中 Dataverse 连接器的执行操作时触发器下面可用。
- 类别: Microsoft Dataverse 常见。
- Category: Power Platform 管道.
- 表名称:(None)。
- 操作名称:选择列表中的一个选项。 管道提供了以下自定义操作,这些操作会在 Power Automate 云端流中产生触发器。 只有在启用相应的扩展时,才会触发与 Approval 和 OnPreDeployment* 相关的事件。
OnDeploymentRequested
OnApprovalStarted
OnApprovalCompleted
OnPreDeploymentStarted
OnPreDeploymentCompleted
OnDeploymentStarted
OnDeploymentCompleted
此处是一个触发器的示例截图。
触发条件
Power Automate 触发条件允许您自定义触发器,以仅在满足某些条件时运行流。 例如,您可能需要在不同的管道或管道阶段中运行不同的流和关联的业务逻辑。 这还有助于保持低消耗的流运行和 Power platform 请求。
为特定管道触发流
为管道(Contoso 管道)的所有阶段触发流运行。 在此示例中,将“Contoso 管道”替换为您的管道的名称:
@equals(triggerOutputs()?['body/OutputParameters/DeploymentPipelineName'], 'Contoso Pipeline')
为管道的特定阶段触发流
为阶段名称等于“Contoso UAT”的部署阶段触发流:
@equals(triggerOutputs()?['body/OutputParameters/DeploymentStageName'], 'Contoso UAT')
为管道的特定阶段触发流
为阶段名称包含“QA”的部署阶段触发流:
@contains(triggerOutputs()?['body/OutputParameters/DeploymentStageName'], 'QA')
了解有关条件中使用的表达式的详细信息:使用条件中的表达式检查多个值。
操作
在云端流中运行所需的逻辑后,将执行未绑定操作与每个网关扩展的相应操作结合使用。
这些参数在对应的受控扩展的操作中公开。
- UpdatePreExportStepStatus、UpdateApprovalStatus 和 PreDeploymentStepStatus:
- 10 是系统设置的 pending 状态。
- 20 用于完成步骤。
- 30 拒绝步骤。 部署无法继续进行,并且状态将设置为“失败”。 您还可以添加面向制作者和面向管理员的注释,以表明拒绝的原因。
- 审批注释和部署前注释:
- 在管道运行历史记录中,制作者可以看到的注释。 供审批者与请求制作者共享注释。 例如,他们的部署被拒绝的原因或关于公司特定流程的信息。
- PreExportProperties 和 ApprovalProperties:
- 管理员可以在此存储信息或自定义参数,而不会展示给制作者——例如到流运行或审批的链接,或者其他相关数据。 目的是提供灵活性并简化部署相关数据的自定义报告。
示例
下载所需的托管解决方案,然后将其导入到管道主机环境中。 可以对这些示例进行自定义,以满足您组织的独特需求。
管道扩展性示例
此下载包含了使用上述触发器和管道操作的示例云端流。 详细信息:下载示例解决方案
删除委派部署示例
该下载包含用于在目标环境中管理批准和共享部署的画布应用程序和流的示例云端流。 详细信息:下载示例解决方案