Summary
1. [Azure] 新規プロジェクト作成
Windows Azure プロジェクトを新規作成する。同時に作成するロールの種類を選択するダイアログが表示されるのでWCFサービス Webロールを追加する。
新しいWindows Azureプロジェクト ダイアログ
2. [WCF] Webサービス実装
- サービスコントラクト(interface)定義
- サービスコントラクト(concrete class)実装
- SVCファイル(マークアップ)の変更
Factory属性を変更しREST用とする。
- Roleプロジェクトの設定(VMサイズ、インスタンス数等)
Azureプロジェクトのプロパティから変更する。
サービスコントラクト定義(IRestService.cs)
using System;
using System.Runtime.Serialization;
using System.ServiceModel;
namespace RestServiceWebRole
{
[ServiceContract]
public interface IRestService
{
[OperationContract]
OrderItem GetOne(string id);
}
[DataContract(Namespace = "", Name = "OrderItem")]
public class OrderItem
{
[DataMember]
public int Id;
[DataMember]
public string Name;
[DataMember]
public DateTime Date;
}
}
サービスコントラクト実装(RestService.svc.cs)
using System;
using System.ServiceModel.Web;
namespace RestServiceWebRole
{
public class RestServiceImpl : IRestService
{
// WebMessageFormat.Xml : POX(プレーンなXML形式)
[WebGet(UriTemplate = "orders/{id}", ResponseFormat = WebMessageFormat.Xml)]
public OrderItem GetOne(string id)
{
return new OrderItem
{
Id = int.Parse(id),
Name = "テスト",
Date = DateTime.Now
};
}
}
}
SVCファイル(マークアップ)の変更
<%@ ServiceHost Language="C#" Debug="true"
Service="RestServiceWebRole.RestServiceImpl"
CodeBehind="RestService.svc.cs"
Factory="System.ServiceModel.Activation.WebServiceHostFactory"
%>
3. [Azure] 配置と実行(Visual Studioでの作業)
Azureプロジェクトのコンテキストメニューから発行をクリックしサービスパッケージだけを作成を選択すると以下のファイルを出力したフォルダが表示される。
ファイル |
概要 |
説明 |
ServiceDefinition.csdef |
サービス定義ファイル |
ロールの構成情報を定義 |
ServiceConfiguration.cscfg |
サービス設定ファイル |
ロールの設定情報 |
Windows Azureプロジェクトの配置 ダイアログ
4. [Azure] 配置と実行(Management Portalでの作業)
- コンピューティングサービスを選択し"New Staging Deployment"を実行
- Deployに必要な以下のファイルを指定
- Deployment name (識別用)
- Package location (XXX.cspkg)
- Configuration file (ServiceConfiguration.cscfg)
- インスタンス数が1の場合、SLAが適用されないという旨のwarningが表示。無視してよい。
Deployment name, Package location, Configuration fileの指定
サーバ証明書を用いたサービスの公開方法
手順は以下の通り。
- 秘密鍵付きサーバ証明書(pvk)の作成(local)
- pkvファイルのアップロード(azure)
- Azureプロジェクトへの証明書(サムプリント)登録(local)
- Azureプロジェクトへのhttpsエンドポイント追加(local)
- [発行]
- サブスクリプションの選択(サインインして資格情報をダウンロードし、インポート)
- ホストされているサービスの選択
Procedure for development or engineering
Additional information
Cost(課金の対象はデプロイ)
Staging, Production環境それぞれにデプロイされている場合は、それぞれが課金対象となる。デプロイされたアプリケーションが[Stopped]状態でも同様。
Link
最終更新:2012年01月30日 17:27