新しいAzure Scheduler APIを呼び出しようとしています。ただし、すべてのリクエストには次のエラーが返されます。
<Error xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Code>AuthenticationFailed</Code>
<Message>The server failed to authenticate the request. Verify that the certificate is valid and is associated with this subscription.</Message>
</Error>
同じコードと証明書を使用してAzure Service Management APIを呼び出すことができるので、すべてが正しくセットアップされていると確信しています。
証明書を Web 要求に添付するために使用しているコードは、MSDN サンプルからのものです。私が試みた Scheduler API 呼び出しは、Check Name Availability、Create Cloud Service、および Create Job Collection です。
また、サブスクリプションが Scheduler のプレビューに対してアクティブであることも確認しました。
私が試したリクエストの例を次に示します。
リクエスト クラウド サービスは、サービス管理 API テナントの CloudServices OData コレクションに HTTP PUT 操作を送信することによって作成されます。サブスクリプション ID とクラウド サービス ID に置き換えます。
このために、次を指す Web リクエストを作成します。
https://management.core.windows.net/[MySubId]/cloudServices/[MyNewServiceName]
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(requestUri);
// Define the requred headers to specify the API version and operation type.
request.Headers.Add("x-ms-version", "2012-03-01");
request.Method = "PUT";
request.ContentType = "application/xml";
次に、ドキュメントで指定されているようにリクエスト本文を追加します。
<CloudService xmlns:i='http://www.w3.org/2001/XMLSchema-instance' xmlns='http://schemas.microsoft.com/windowsazure'>
<Label>[MyServiceName]</Label>
<Description>testing</Description>
<GeoRegion>uswest</GeoRegion>
</CloudService>
最後に、サブスクリプションで使用する証明書をアカウントに追加します。
// Attach the certificate to the request.
request.ClientCertificates.Add(certificate);
応答を取得しようとすると、代わりに上記のエラーが表示されます。
ところで-スケジューラはすべての地域でサポートされているわけではないため、地域の問題であると考えてさまざまな地域も試しましたが、それでも同じ応答が得られます。