deploy-site 是微软 Power Platform Skills 提供的技能,用途是把一个已存在的 Power Pages 代码站点部署到 Power Pages 环境,底层使用 PAC CLI 完成操作。它采用分阶段、系统化的流程,并在每个关键节点要求用户确认。
主要能力与流程:
-
工具校验(Phase 1):运行 pac help 检查 PAC CLI 是否已安装并位于系统 PATH。若未安装,提示用户通过 dotnet tool install --global Microsoft.PowerApps.CLI.Tool 安装;若 dotnet 也不可用,则引导用户访问 https://aka.ms/PowerPlatformCLI 获取包含 .NET SDK 的完整安装说明。安装后再次用 pac help 验证。
-
身份认证(Phase 2):运行 pac auth who 检查当前认证状态。若已认证,提取环境名称、URL、Environment ID(GUID)、Cloud 值(如 Public、UsGov、UsGovHigh、UsGovDod、China)。若未认证,询问用户提供 Power Pages 环境 URL(例如 https://org12345.crm.dynamics.com),然后运行 pac auth create --environment "<USER_PROVIDED_URL>",该命令会打开浏览器供用户登录,完成后再次用 pac auth who 验证。
-
确认环境(Phase 3):向用户回显当前连接的环境并要求明确确认,避免部署到错误租户或环境。若用户选择更换环境,运行 pac org list 列出可用环境,用户选定后运行 pac org select --environment "<SELECTED_ENV_ID_OR_URL>" 切换,并用 pac auth who 复核。
-
部署代码站点(Phase 4):
- 定位项目根目录:通过 Glob 搜索 **/powerpages.config.json,若找到多个则询问用户选择;未找到则请用户提供路径。
- 权限审计(仅重复部署):若 .powerpages-site 已存在,提示可先运行 /audit-permissions 检查表权限与代码是否漂移。
- 校验站点完整性:运行 node "${PLUGIN_ROOT}/scripts/validate-site-integrity.js" --projectRoot "<PROJECT_ROOT>",校验双向规则,并在存在 .powerpages-localization.json 时检查资源一致性、受保护令牌、区域设置可用性、运行时方向协调与本地化结构;校验失败需先修复再部署。
- 构建站点:cd "<PROJECT_ROOT>" 后运行 npm run build,构建失败则先修复。
- 上传:运行 pac pages upload-code-site --rootPath "<PROJECT_ROOT>"。
-
验证部署(Phase 5):确认 .powerpages-site 文件夹存在并列出内容(web-roles/、site-settings/、table-permissions/);记录技能使用(--skillName "DeploySite");确认上传输出无错误;执行 git add -A 与 git commit -m "Deploy site to Power Pages";运行 node "${PLUGIN_ROOT}/scripts/check-activation-status.js" --projectRoot "<PROJECT_ROOT>" 检查激活状态。若未激活,询问是否调用 /activate-site 激活并分配子域名;若已激活,询问是否运行 node "${PLUGIN_ROOT}/scripts/clear-site-cache.js" --projectRoot "<PROJECT_ROOT>" 重启站点以刷新运行时缓存(可能造成数秒停机)。
-
处理被阻止的 JavaScript(Phase 6):若上传因 .js 附件被阻止而失败,向用户说明这是环境安全设置,需获得明确许可后运行 pac env list-settings 获取 blockedattachments,移除其中的 js 后运行 pac env update-settings --name blockedattachments --value "<UPDATED_LIST_WITHOUT_JS>",然后重试上传。
适用场景:需要将 Power Pages 代码站点部署到 Power Pages 环境的开发者或管理员,尤其是希望以受控、可确认的方式完成部署并处理常见阻塞问题的场景。
限制与注意事项:技能要求 PAC CLI 与 .NET 环境;部署前必须完成认证与环境确认;修改环境设置(如解除 .js 阻止)必须获得用户明确同意;激活与缓存清理为可选步骤,缓存清理可能带来短暂停机;HTML 被阻止的报错可能是误导性信息,实际原因可能是 .powerpages-site 中过期的环境清单文件。