使用 Powershell 调用同步

Invoke Sync with Powershell

通常,我将部署源集成到 webapp,然后 运行 在 webapp 仪表板中找到的 'Sync' 按钮在需要时进行同步带有我的 onedrive 文件夹的 Azure webapp。

但是,如果我想给非 Azure 用户,我的意思是,谁需要不登录到 Azure 门户本身,而不是可以调用演示凭据或排序,我该怎么办?或者,如果我想从 shell 自己 运行 ,如何处理?

是否可以 运行 使用服务主体或类似方式从 power-shell 进行同步(运行books,http使用用于同步的 azure 函数触发)而不实际为用户提供登录凭据?

更新: 1. 我在 Kudu 上阅读了这篇博客,但不确定它是否是我真正要找的。请建议。 https://dzimchuk.net/post/azure-web-apps-continuous-deployment

8 月 31 日更新

我的工作流程有 3 个插槽 dev/stage/mirror。我的目标是将 dev 与源代码库集成。因此,同步在最低环境下启用。

SiteName                  : YourWebApp(dev)
State                     : Running
DefaultHostName           : YourWebApp-dev.azurewebsites.net
Id                        : /subscriptions/1234567890-{my}-{subscription}_{id}/resourceGroups/Default-Web/providers/Microsoft.Web/sites/YourWebApp/slots/dev
Name                      : YourWebApp/dev
Location                  : East US
Type                      : Microsoft.Web/sites/slots

如果你安装了最新的 Azure PowerShell,你可以运行这个命令来触发同步:

Invoke-AzureRmResourceAction -ResourceGroupName {YourResourceGroup} -ResourceType Microsoft.Web/sites -ResourceName YourWebApp -Action sync -ApiVersion 2015-08-01 -Force

或者,如果您处理的是插槽,它将如下所示:

Invoke-AzureRmResourceAction -ResourceGroupName {YourResourceGroup} -ResourceType Microsoft.Web/sites/slots -ResourceName YourWebApp/YourSlot -Action sync -ApiVersion 2015-08-01 -Force

就让其他用户进行身份验证而言,您有两种选择:

  1. 您可以让他们成为该 Web 应用程序的贡献者(使用 RBAC - 基于角色的访问控制)
  2. 你可以设置一个Service Principal