Powershell脚本适用于Add-AzureAccount,但不适用于Login-AzureRmAccount

时间:2018-01-30 09:37:25

标签: powershell azure azure-functions azure-powershell azure-deployment

我有一个zip文件,其中包含要部署到我之前通过Powershell脚本部署的功能应用程序的azure函数。

我没有自己的Azure订阅服务。我写了一段代码,当你是订阅的所有者时,它可以正常工作,我希望能够在没有所有者订阅的情况下完成相同的功能。

如果我Login-AzureRmAccount,则此脚本无效。它仅适用于Add-AzureAccount ..

Add-AzureAccount
Get-AzureSubscription -Current
$subscriptionName = Read-Host -Prompt 'Enter target Subscription name'
Select-AzureSubscription -Current -SubscriptionName $subscriptionName
$FuncAppName = Read-Host -Prompt 'Enter Function App Name you provided in above step'
Publish-AzureWebsiteProject -Package "Kovai.AtomicScope.Azure.zip" -Name $FuncAppName

2 个答案:

答案 0 :(得分:0)

我认为问题在于没有Publish-AzureRMWebsiteProject cmdlet(有一个Select-AzureRmSubscription cmdlet可以让您更接近,但不是所有方式)。

但是,publish-AzureWebsiteProject是Web Deploy\MSDeploy的包装器,因此您可以直接使用msdeploy。您还可以使用WAWSDeploy(也是msdeploy的包装器),这样可以简化操作。

答案 1 :(得分:0)

Publish * cmdlet是一个非常古老的Azure RDFE cmdlet。 Login-AzureRMAccount是Azure资源管理器(即较新的)cmdlet。

实质上,Azure和AzureRM cmdlet与不同的端点通信,需要不同的身份验证。这不是100%正确(有一些例外),但这就是在这种情况下发生的事情。

因此,如果您使用的cmdlet是Verb-AzureSomething,则需要Add-AzureAccount。如果cmdlet是Verb-AzureRM *,那么您需要使用Add-AzureRMAccount的Login-AzureRMAccount进行身份验证。