5

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-file をダウンロードし、使用する代わりにそれをインポートした後、動作するようになりましたSet-AzureSubscription。私はまだ少し混乱していますが、上記で試した方法を使用することは可能でしょうか?

4

1 に答える 1

5

私はついに問題を発見しました。もちろん、それはユーザーの問題でした。最初にAzureポータルにいたとき、証明書をアップロードする場所が見つからなかったので、証明書に言及している最初の場所にアップロードしました。私が見つけたのは、この領域が間違っていたことです。管理したいクラウド サービスの下の証明書領域に証明書をアップロードしましたが、これは間違った場所です。

証明書をアップロードする正しい場所はsettings、azure の管理ポータルの下にあります。したがって、証明書が正しい場所にアップロードされている場合、上記のコードは機能します。

于 2012-12-28T14:15:33.297 に答える