我想用PowerShell将我的应用程序部署到azure。到目前为止,我已在localmachine商店中创建了一个证书,我不会像我一样运行部署脚本,将脚本上传到azure。下一步是在powershell中访问azure上的服务,但它失败了。我到目前为止的脚本是:
$cert = Get-Item Cert:\LocalMachine\deploy\xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Set-AzureSubscription -SubscriptionName $subscriptionName -SubscriptionId $subscriptionId -Certificate $cert
Select-AzureSubscription $subscriptionName
$service = Get-AzureService $azureId
在最后一行失败并显示以下消息:
Get-AzureService : Communication could not be established. This could be due to an invalid subscription ID. Note that subscription IDs are case sensitive.
At F:\DeployTest\deploy.ps1:9 char:12
+ $service = Get-AzureService $azureId
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (:) [Get-AzureService], Exception
+ FullyQualifiedErrorId : Microsoft.WindowsAzure.Management.ServiceManagement.HostedServices.GetAzureServiceCommand
Get-AzureService : HTTP Status Code: AuthenticationFailed - HTTP Error Message: The server failed to authenticate the request. Verify that the certificate is valid and is associated with this subscription.
Operation ID:
At F:\DeployTest\deploy.ps1:9 char:12
+ $service = Get-AzureService $azureId
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (:) [Get-AzureService], CommunicationException
+ FullyQualifiedErrorId : Microsoft.WindowsAzure.Management.ServiceManagement.HostedServices.GetAzureServiceCommand
我真的不知道问题是什么,我试图使用的证书已上传,所以感觉有一些我错过的基本信息。
更新:我在下载.publishsettings文件并导入该文件后,确实让它工作,而不是尝试使用Set-AzureSubscription
。我仍然有点困惑,难道不应该使用我上面尝试过的方法吗?
答案 0 :(得分:5)
我终于找到了问题,当然这是用户问题。首先,当我在天蓝色的门户网站时,我没有找到上传证书的位置,因此我将其上传到第一个位置,我发现提到了证书。我发现的是这个区域是错误的,我将证书上传到我想管理的云服务下的证书区域,这是错误的地方。
将证书上传到的正确位置位于azure管理门户中的settings
下。因此,如果证书上传到正确的位置,上面的代码就可以使用。