我有一个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
答案 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进行身份验证。