如何使用命令行中的受限用户帐户更新Azure上的云服务

Jar*_*lls 7 powershell azure azure-resource-manager

我希望升级的服务位于资源组中,我的用户帐户被配置为该资源组的所有者.用户帐户仅限于访问一个资源组.

我可以通过上传文件cspkgcscfg文件,使用新的管理门户成功更新云服务.

我正在尝试使用Azure Powershell自动执行此过程.

这是我到目前为止所尝试的:

Set-AzureDeployment -Upgrade -ServiceName test-service -Configuration C:\temp\test-service.cscfg -Package "https://test-service.blob.core.windows.net/azurepowershelldeploy/test-package.cspkg" -Slot Production -Mode Auto -Label test-2015-07-28T00:33:04

ForbiddenError: The server failed to authenticate the request.
Verify that the certificate is valid and is associated with this subscription.
Run Code Online (Sandbox Code Playgroud)

看看fiddler,它正在向这个端点发出请求,并且禁止返回403.

POST /xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx/services/hostedservices/test-service/deploymentslots/Production/?comp=upgrade HTTP/1.1
Run Code Online (Sandbox Code Playgroud)

我相信ASM API无法与资源组一起正常工作.是否有使用新ARM API更新云服务的方法?

tri*_*oot 0

您可以使用 ARM 在单个协调操作中部署、更新或删除应用程序的所有资源。

您可以使用以下命令将 ARM 模板重新部署到现有 RG:New-AzureResourceGroupDeployment

New-AzureResourceGroupDeployment cmdlet 将部署添加到现有资源组,包括部署所需的资源。此 cmdlet 类似于 New-AzureResourceGroup cmdlet,但它适用于现有资源组,而不是新资源组。要将单个资源添加到资源组,请使用 New-AzureResource cmdlet。

针对您的场景(进行一些更改)的一个很好的演练位于:在 Azure 中可预测地配置和部署微服务

本教程演示如何使用 JSON 资源组模板和 PowerShell 脚本以可预测的方式预配和部署由 Azure 应用服务中的微服务组成的应用程序作为单个单元。

不要使用 RG 模板中的应用服务资源,而是使用您需要的资源类型。然后调用上述 New-AzureResourceGroupDeployment cmdlet 而不是 New-AzureResourceGroup cmdlet。