Windows Azure Tips from Prospex

システム開発 × インフラ構築・運用 × グラフィックデザイン = プロスペックス

Web Role をデプロイすると何が起こっているのか

clock May 10, 2011 22:29 by author Sekine

Windows Azure 上でのローカルファイルのコンテンツを操作したくなった。

基本的にAzure上では、ファイル操作が自由に出来るのは

ローカルストレージ領域のものに対してという事になっているのだが、

単にそれは、初期のファイルアクセス権がそうさせている。


何はともあれ、具体的にリモートデスクトップで

何が起こっているのか確認してみた。


リモートデスクトップをするためには、デプロイするパッケージが必要なので、

まずは、Visual Studio で簡単なWeb Role を作成する。


※SDK 1.4 がインストールされているものとする。

プロジェクトの作成
C#、Cloud Windows Azure Project を選択、

image

MVC 2 Web Role を追加。

単体テストプロジェクトは作成しない。


プロジェクトが開いたら、ローカルストレージを領域を1つ追加する

image

Web Role をダブルクリックし、プロパティを表示

image

Local Storage で、”Add Local Storage”

名前は、LocalStorageDatas にした。


プログラムは、何も書かずにこれだけの設定で、Azure用にパッケージを作ります。

image

リモートデスクトップが有効なパッケージの設定をします。

image


.\bin 配下、Debug\Publishにパッケージが出来ます。
ServiceConfiguration.cscfg
WindowsAzureProject1.cspkg


このパッケージをAzure へデプロイします。

image


しばらくすると、デプロイ完了。

image

インスタンスを選択すると、右上のリモートデスクトップのリンクが有効になってます。

image

クリックして、RDP接続ログインします。


サーバーマネージャを開き、デプロイされたIIS上のWebサイトを確認
image

Eドライブの、.\siteroot\0 という所にWebサイトが配置されています。

image


作成したローカルストレージのルートフォルダは、・・・

Cドライブです。

image

C:\Resources\Directory\7d42203ef8c144cc880b0fb178b73fb4.MvcWebRole1.LocalStorageDatas

C:\Resources\Directory\[自動的に割り振られた文字].[Webアプリケーション名].[ストレージ名]

という名前ルールになってます。


ファイルのアクセス権はどうなっているのか?

の前に、実行ユーザーは誰なのか?Webサイトのアプリケーションプールは、

image

憶測不能・・?な自動に振られた名前がつけられて、

image

ビルトインの、NetworkServiceユーザーで動いています。


ファイルのACLは?

Webサイトの、E:\siteroot/0 配下

image IUSR もいますが、権限は同じでした。



ローカルストレージは、特殊権限として付与され、

権限を見ると、Fullでは無いにしても、Fullに近い権限を持っています。

image



フォルダの構成は分かった。

では、必ず毎回そうなのかというと?

Webサイトが置かれるドライブレターは、いろいろ試したところ変更されました。

RDP接続したまま、パッケージを上書きしてデプロイを行った時に、EドライブがFドライブに変更されました。


ローカルストレージに関しては、同じ構成のままでした。

任意に振られるフォルダ接頭句に関しては、確証はもてないので、

C:\Resources\Directory\[自動的に割り振られた文字].[Webアプリケーション名].[ストレージ名]

というルールは覚えておかないとね。




さてさて、折角なので、

というか本当にやりたい事の検証はここから



ローカルストレージに、MVC の View部分になるViewsをフォルダごとコピーします。

image

最初に有ったWebサイトのViewsフォルダーを削除

= E:\sitesroot\0\Views は、フォルダーごとバッサリ削除

IIS マネージャ上で、元々Viewsが有った位置に、

Viewsの仮想ディレクトリを作成、場所はローカルストレージ位置のフォルダーを指定

image

意味わかりますね?


では、アクセス

image

・・・エラーに出会えました


仕方が無いので、作成した Views フォルダーのACLをいじります。

乱暴ですが、Everyone を 追加。権限は変更で!


再びアクセス

image


表示できました。


これで、WebアプリケーションからViewテンプレートを直接変更する事が出来るような

アプリケーションを作る事ができます。



Windows Azure SDK.1.3 から StartupTask が使えるようになりました。


次回は、今回のようなViewsをローカルストレージにコピー、

Viewsの仮想ディレクトリ設定など、IISを設定するプログラムと、

それらを、StartupTask で行う方法を示します。


関根:



Windows Azure にリモート デスクトップで接続

clock February 23, 2011 10:31 by author Ando

 

前回作成した、Webロールに対して、リモート デスクトップで接続してみようと思います。

まずは、Windows Azure ポータルへアクセス。

しかし、「Remote Access」が Disable になっていて使えません。

image

調べて見たところ、「リモート デスクトップ」を有効にするには、ちょっと手間のかかる準備が必要なようです。

エバンジェリストの安納さんが詳しい手順を公開されているので、それに沿ってやってみることにしました。
詳細はご覧いただければ良いかと思いますが、手順3以降が本題と言って良いかと思います。

具体的には次の流れで、pfx ファイルをリモートデスクトップ様に作成し、Windows Azure ポータル でインポートします。

image image image

image image

そして、Visual Studio 2010 に戻って、再度「発行」してみます。
手順は前回と同じようにしました。

発行が完了したら、「Connect」が押せるようになりました。

image

 

image image

この後に、「localhost\(VS2010で設定したユーザー名)」を指定することが肝要です。

image image

リモート デスクトップ接続ができました。

image



Sign In