使用Powershell调用Sync



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

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

是否有可能从power-shell使用服务主体或类似的方式(runbooks, http触发器与azure函数同步)运行同步,而实际上不给用户一个登录凭据本身?

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

Update 31/Aug:

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

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. 你可以设置一个服务主体

最新更新