MSC2011 D3-303 “Windows Phone/iOS/Android から Windows Azure を利用する” session follow up - Part 3 : スクラッチでのソリューション開発 - 5 Windows Azure への展開

皆様、こんにちは!

このシリーズも、8回目のエントリーですね。お付き合い戴き誠に有難うございます。

この後は、Windwos Azure Toolkit for iOS 編のご紹介となります。これと並行して、いま 佐藤直生 が、Andoroid 編をしっかりと纏めてくれますので、そちらを(おそらくこちらも2-3回かな?)読んで戴ければ、今回のセッションの全貌が明らかになることになります。

さて、本日は、ローカル環境→Windows Azure への展開について、注意点をまとめてご紹介していきたいと思います。

新規で Windows Phone Cloud Application プロジェクトをテンプレートを使って作成した場合、これを、実際の Windows Azure ホステッドサービスにどのようにデプロイするか、というお話ですね。次のステップでやってみてください。

証明書の作成

まず、こちらから、Visual Studio Command Prompt管理者権限で起動します。

image

次いで、適当なフォルダを作り(例;C:\TempCert 等)、そのフォルダに移動します。

image

そして、下記のコマンドで、自分の作ったサービス用の証明書を作ります。<CertificateName> の箇所を、置換してみてください。

例として、私の場合は、wp7sol1 なので、こうなります。

makecert -sky exchange -r -n "CN=wp7sol1.cloudapp.net" -pe -a sha1 -len 2048 -ss My "wp7sol1.cloudapp.net.cer"

image

注意 :  makecert ツールを使うと、 .cer 証明書ファイルの作成と、その作成された証明書を当該PCの証明書ストアへの登録、の2つが実行されます。詳しくは下記記事をご参照ください。

https://msdn.microsoft.com/en-us/library/gg432987.aspx.

PFXファイルのエクスポート

スタートメニュー → ファイル名を指定して実行のダイアログのテキストボックスに、”certmgr.msc”とタイプして、管理コンソール を立ち上げます。

image 

そうすると、証明書のマネージャー画面が立ち上がります。

image

先ほどのコマンドで作成した新証明書は、既に自動的に個人の証明書論理ストアに入っています。そこで、これをWindows Azure に登録するのですが、その際、.pfx ファイルにする必要があります。

そこで、出来上がった証明書を、下記のように右クリックして、すべてのタスク → エクスポート、を選択してOKを押します。

image

証明書のエクスポートウィザードの開始で、 次へ、をクリックします。

image

秘密キーのエクスポートで、はい、を選択して次へをクリックします。

image

ここはそのまま次へ、をクリックして進みます。

image

パスワードを適当に入れます。

image

.pfx ファイルの名前を付けて、適当な場所にエクスポートします。

image

次へ、を押して、Wizard を完了します。.pfx ファイルの生成を確認してください。

注意 : ここで作ったのは、プライベートキー付の証明書 (.pfx) ファイルです。詳細は下記の記事をご参照ください。

https://msdn.microsoft.com/en-us/library/gg432987.aspx.

PFX ファイルのWindows Azure へのアップロード

ブラウザーを起動して、Windows Azure Platform 管理ポータル (https://windows.azure.com )に移動し、自分のWindows Live ID と パスワードを使ってログインします。ホステッドサービス、ストレージアカウント & CDN グループから、ホステッドサービスを選択します。

ホステッドサービスプロジェクトを展開し、証明書フォルダーを開きます。

image

証明書の追加をクリックします。

image

そして、参照をクリックして、保存してある .pfx ファイルの場所を選択したら、パスワードを入力して、作成をクリックします。

image

証明書が無事にアップロードされたら、  後で使用するために、サムプリント(拇印) をコピーします。

image

Windows Azure 環境へのアップロードとデプロイ

次に、Windows Azure プロジェクトに戻り、 ロール(例: WPCloudApp4.Web) をダブルクリックして、ロールのプロパティを表示します。

セッティングタブを選択し、

DataConnectionString

・Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString

が、自分のAzure上のプロダクションアカウント情報と一致していることを確認します。

image

Certificates タブに移動し、SslCertificate プロパティの値をセットします。先ほどWindows Azure 管理ポータルからコピーした保存したサムプリント(拇印) の値が入っているかを確認します。All Configuration ではなくて、Cloud の方なので、間違えないようにしてください。下記に表示されているのはローカルの証明書のサムプリント値です。

image

ここが重要な点と、セッションでも申し上げたのですが、それは、**この ソリューションの中の、Web アプリケーションプロジェクトに当該証明書を追加する**ことです。これにより、このWindows Phone Cloud アプリケーションのユーザー(すなわち Windows Phone ユーザー)が、証明書をダウンロードし、デバイス(または Windows Phone Emulator にインストールできるようになります。

Web アプリケーションプロジェクトを右クリックし、追加 → 既存の項目をポイントして、先ほど作成した当該証明書の .cer ファイルを、このプロジェクトに追加します。追加したら、.cer file のプロパティを開いて、ビルドアクションコンテンツにセットしてください。これにより、本プロジェクトに証明書が含まれることになります。

image

これで、Windows Azure プロジェクトを、ホステッドサービスとして展開することが可能になりました。

なお、これら一連の操作は、Windows Azure Platform 管理ポータルから行うことも、Visual Studio 2010 からダイレクトに行うことも、いずれも可能です。

Windows Azure ホステッドサービスを利用するようにWindows Phone プロジェクトを更新

最後に、このサービスを利用するように、Windows Phone プロジェクトを更新します。Windows Phone プロジェクトを開き、その中の、App.xaml ファイルを開いて編集します。

セッションでもご紹介したとおり、下記の行を、更新する必要があります。私の場合の例を示します。赤い文字の箇所は皆様のソリューションに合わせて変更してくださいね。

Key

Value

SSLCertificateUrl

https://wp7sol1.cloudapp.net:10080/wp7sol1.cloudapp.net.cer

SharedAccessSignatureServiceEndpoint

https://wp7sol1.cloudapp.net/SharedAccessSignatureService

AzureStorageTableProxyEndpoint

https://wp7sol1.cloudapp.net/AzureTablesProxy.axd

AzureStorageQueueProxyEndpoint

https://wp7sol1.cloudapp.net/AzureQueuesProxy.axd

AuthenticationServiceEndpoint

https://wp7sol1.cloudapp.net/AuthenticationService

PushNotificationServiceEndpoint

https://wp7sol1.cloudapp.net/PushNotificationService

SqlOdataEndpoint

https://wp7sol1.cloudapp.net/SqlAzureSampleOdataService

このホステッドサービスに接続できるかのテストは、今までのローカルのサービスの場合と全く同じです。Windows Phone プロジェクトを右クリックして、デバッグコンテキストメニューを開いて、新しいインスタンスを開始、でスタートしてください。

以上です。いかがでしょうか?

次は、iOS からの Windows Azure の利用編、を書きます。

鈴木 章太郎