クラウドアプリケーションを作成する

画像 まず、昨日、Windows Azureのテストに参加するよう招待されました。
そして今、私はクラウドアプリケーションを作成した最初の経験を共有したいと思います。 それは単純な画像ホスティングになります。

Windows Azureが何であるかをまだ知らない場合は、記事「 Azure Services Platformとは何ですか? 」を読むことをお勧めします。 »英語またはウィキペディアのロシア語の簡単な説明

それでは始めましょう。

Windows Azure CTPには次の制限があります。2種類のサービスコンポーネントを作成する機会があります。
新しいコンポーネントを作成するためのインターフェイスは次のとおりです。
Create_new_component.png - image uploaded to Picamatic

イメージをホストすることが決定されたため、このタスクでは1つのデータウェアハウス(Storage1)と1つのクラウド(Cloud1)を作成する必要がありました。

Visual Studio 2008でWindows Azureを使用するには、以下をインストールする必要があります。SDKには、既製のサンプルを含むアーカイブが含まれています。 それらの1つ( サムネイル )は、私が基礎として採用しました。 また、SDKにはStorageClientプロジェクトがあります。これは、 ストレージを簡単に操作できるクラスで構成されています。 サービスへの参照として接続します。

たとえば、データをBlobストレージにロードするコードは次のようになります。
//
BlobStorage blobStorage = BlobStorage.Create(StorageAccountInfo.GetDefaultBlobStorageAccountFromConfiguration());
// "photogallery"
BlobContainer blobContainer = blobStorage.GetBlobContainer( "photogallery" ).CreateContainer( null , ContainerAccessControl.Public);
//
BlobProperties props = new BlobProperties( "NameOfFileInContainer" ) { ContentType = upload.PostedFile.ContentType };
//
blobContainer.CreateBlob(props, new BlobContents(upload.FileContent), true );

Visual StudioにWindows Azureツールをインストールすると、新しいタイプのプロジェクトが表示されます。
VS_New_Projects.png - image uploaded to Picamatic

Worker Cloud Serviceを作成します。 これはクラウドで動作し、画像のプレビューを生成するサービスになります。
クラスのコードテンプレートの形式は次のとおりです。
public class WorkerRole : RoleEntryPoint
{
public override void Start()
{
// This is a sample worker implementation. Replace with your logic.
RoleManager.WriteToLog( "Information" , "Worker Process entry point called" );

while ( true )
{
Thread.Sleep(10000);
RoleManager.WriteToLog( "Information" , "Working" );
}
}

public override RoleStatus GetHealthStatus()
{
// This is a sample worker implementation. Replace with your logic.
return RoleStatus.Healthy;
}
}
ご覧のように、サービスは10秒ごとに動作していることをログに書き込みます。

ストレージクラス(Microsoft.Samples.ServiceHosting.StorageClient)を使用して参照プロジェクトに接続します。
Add_reference.png - Picamatic - upload your images

記事を脅さないために、サービスコードは提供しません。ここにリンクがあります。

サービスコードを記述した後、クラウドにアップロードする必要があります。 これを行うには、「公開」用のパッケージを準備します。
PublishToCloud.png - Picamatic - upload your images

その後、クラウドにアップロードする必要がある2つのファイル(サービスコードと、サービスのノードの数を示す構成ファイルを含むパッケージ自体)が作成されます。
Package.png - Picamatic - upload your images

公開手順は2つの段階で構成されます。

公開後、画像は次のようになります。
Published.png - upload images with Picamatic

これで、クラウドで動作するサービスとストレージができました。 最後に残っているのは、Webシェルを作成することです。

ここではすべてがより馴染みのあるものです。マスターホストからホスティングに配置した1つのaspxページ( Default.aspxDefault.aspx.cs )を使用してみましょう(これをクラウドに委託することもできました)。
ページにはUpdatePanelが1つあり、プレビューリンクを含むContentTemplateが含まれています。
UpdatePanelは5秒ごとに更新され、リポジトリで現在作成されているすべてのプレビューを受け取ります。 まあ非常にシンプルな画像ホスティング。 =)

すべて準備完了: tinyakov.net/img

楽しい部分、テストを開始できます!

ストレージの負荷スケジュールを随時更新します。


ご清聴ありがとうございました! =)

Window Azureプラットフォームに触れたい場合は、 こちらから招待に登録してください
コメントであなたの質問に答えようとします。

Source: https://habr.com/ru/post/J49389/


All Articles