Summary

1. [Azure] 新規プロジェクト作成

Windows Azure プロジェクトを新規作成する。同時に作成するロールの種類を選択するダイアログが表示されるのでWCFサービス Webロールを追加する。

新しいプロジェクト ダイアログ

新しいWindows Azureプロジェクト ダイアログ


2. [WCF] Webサービス実装

  1. サービスコントラクト(interface)定義
  2. サービスコントラクト(concrete class)実装
  3. SVCファイル(マークアップ)の変更
    Factory属性を変更しREST用とする。
  4. 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での作業)

  1. コンピューティングサービスを選択し"New Staging Deployment"を実行
  2. Deployに必要な以下のファイルを指定
    1. Deployment name (識別用)
    2. Package location (XXX.cspkg)
    3. Configuration file (ServiceConfiguration.cscfg)
  3. インスタンス数が1の場合、SLAが適用されないという旨のwarningが表示。無視してよい。

New XXX Deploymentの実行

Deployment name, Package location, Configuration fileの指定


サーバ証明書を用いたサービスの公開方法

手順は以下の通り。
  1. 秘密鍵付きサーバ証明書(pvk)の作成(local)
  2. pkvファイルのアップロード(azure)
  3. Azureプロジェクトへの証明書(サムプリント)登録(local)
  4. Azureプロジェクトへのhttpsエンドポイント追加(local)
  5. [発行]
    1. サブスクリプションの選択(サインインして資格情報をダウンロードし、インポート)
    2. ホストされているサービスの選択




Procedure for development or engineering


Additional information

Cost(課金の対象はデプロイ)

Staging, Production環境それぞれにデプロイされている場合は、それぞれが課金対象となる。デプロイされたアプリケーションが[Stopped]状態でも同様。

Link




タグ:

Azure WCF
+ タグ編集
  • タグ:
  • Azure
  • WCF
最終更新:2012年01月30日 17:27