none
Windows AzureでBlobのSimpleなサンプルのDeployが失敗する RRS feed

  • 質問

  • Microsoftの10行レシピにあるBlobを使った写真のアップロードのサンプルを作成し、ローカル環境では動作しました。しかしDeployしようとするとInitialize-Busy-Stopのループになります。ServiceConfigulation.cscfgとServiceDefinition.csdefはDeploy用の情報に書き換えてあります。AccountKey、AccessKeyとも設定してあります。

    ひとつ分からないのがEndpointProtocolなのですがこれはBlobを使う場合httpsにすることが必須なのでしょうか。

    2010年10月7日 1:22

回答

  • こんにちは、冨田でございます。

    結論から言いますと、Azureのストレージに接続する際にHTTPSを選択しても、証明書を用意する必要はありません。ですので、接続をHTTPからHTTPSに切り替える際にも、特別に何か別の作業をする必要はありません。

    「じゃあ証明書ってどこにあるの?」という話になるのですが、ざっくりと一言で言ってしまうと、接続文字列の中で設定しているアカウントキーが証明書の役割を果たします。
    ストレージアカウントに対してリクエストを投げるときに、本当はどんなことが行われているかの詳細については、以下の書籍に詳細な説明がありますので、こちらを参照していただければと思います。
    Sriram Krishnan 「Programming Windows Azure」
    http://oreilly.com/catalog/9780596801984/

    2010年10月8日 8:23
    モデレータ

すべての返信

  • 参照設定にて、「Microsoft.WindowsAzure.StorageClient」に対して、「ローカルコピー」を「True」に設定していますでしょうか?

    これを設定しませんと、ご指摘のようにDeployでループします。

    2010年10月7日 3:57
  • 特に設定はしていませんでしたが、確認したらTrueでした。

    EndpointsProtocolはhttpsではなくhttpでもできるのでしょうか。

    2010年10月7日 4:53
  • ストレージを使用する際に、普通にデータアクセスを行うエンドポイントはHTTPでもHTTPSでも構いません。
    ですが、ロギングに使用するエンドポイントに関してはHTTPSを使用しないと、Initializingの際に内部で例外が発生してしまい、Initialize-Busy-Stopのループになってしまうかと思います。

    おそらく、ロギング用の接続文字列は「DiagnosticsConnectionString」という名前で設定されているかと思いますので、この接続をHTTPからHTTPSに変更してみてください。

    2010年10月7日 10:05
    モデレータ
  • 原因はご指摘のようにロギングでした。

    デフォルトで作成された

    DiagnosticMonitor.Start("DiagnosticsConnectionString");

    で問題が起きているようでした。

    HTTPSでつなぐにはSSL証明書が必要なようですが、ちょっとテストしようとしているだけで証明書などはありません

    困りましたが

    DiagnosticMonitor.AllowInsecureRemoteConnections = true;

    をいれることでhttpでロギングも問題なくなりました。(といってもロギングができるようになったわけではないですが)

    素朴な疑問ですが、Azureでテスト開発している方たちは個人も含めて普通はみなSSL証明書を取得しているものなのでしょうか。テストだけならローカルで簡単に証明書が作成してDeployしたものに使えるのでしょうか(ドメインから考えるとそうは思えないのですが...)

    2010年10月8日 6:47
  • こんにちは、冨田でございます。

    結論から言いますと、Azureのストレージに接続する際にHTTPSを選択しても、証明書を用意する必要はありません。ですので、接続をHTTPからHTTPSに切り替える際にも、特別に何か別の作業をする必要はありません。

    「じゃあ証明書ってどこにあるの?」という話になるのですが、ざっくりと一言で言ってしまうと、接続文字列の中で設定しているアカウントキーが証明書の役割を果たします。
    ストレージアカウントに対してリクエストを投げるときに、本当はどんなことが行われているかの詳細については、以下の書籍に詳細な説明がありますので、こちらを参照していただければと思います。
    Sriram Krishnan 「Programming Windows Azure」
    http://oreilly.com/catalog/9780596801984/

    2010年10月8日 8:23
    モデレータ