SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Windows Azure Tips - 米国MSDNフォーラムウォッチング

MSDNフォーラムから見るAzure開発のノウハウ(3)

Windows Azure Tips - 米国MSDNフォーラムウォッチング

  • X ポスト
  • このエントリーをはてなブックマークに追加

6)testing RoleEnvironment.Changing and RoleEnvironment.Changed event handlers in development fabric?

  • 質問:

     RoleEnvironment.Changing と RoleEnvironment.Changed イベントをコンピュートエミュレーターでテストする方法はありますでしょうか?[デバッグ][初級]

  • 回答:

     csrunコマンドを使用することで可能です。

  • 解説:

     RoleEnvironment.ChangingイベントとRoleEnvironment.Changedイベントは、ロールインスタンスが稼働しているWindows Azureの環境を表現するRoleEnvironmentクラスに定義されているイベントで、構成設定ファイル(.cscfgファイル)の変更時に発生します。

     また、csrunコマンドはWindows Azureのローカルデバッグ環境の操作ツールです。このツールを使用することで、サービスの起動/停止/状態変更などを行うことができます。

     今回は状態変更なので以下のコマンドラインとなります。

    csrun /update:<deployment-id>;<configuration-file>
    

     このコマンドを使用することで、コンピュートエミュレーターでもイベントをテストすることができます。では、具体的に見ていきます。

    1. 構成設定を定義する

     クラウドプロジェクトの各ロールを右クリックして、プロパティを表示して設定を選択します。[設定を追加]を選択して構成設定を追加します。今回は名前を「Setting」、種類を「文字列」、値を「before」にしてデバッグを実行します。

    設定画面
    設定画面
    2. 設定を変更する

     cscfgファイルを直接修正します。ファイルは、<プロジェクトのフォルダ>\bin\Debug\ServiceConfiguration.cscfgになります。設定項目はxml形式となっていますが、Setting要素の[value]を「before」から「after」に変更します。

    構成設定変更箇所
    <Role name="WorkerRole1">
      <Instances count="1" />
      <ConfigurationSettings>
        <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" />
        <Setting name="Setting" value="After" />
      </ConfigurationSettings>
    </Role>
    
    3. 状態変更を反映する

     [スタートメニュー]→[すべてのプログラム]→[Windows Azure SDK v1.3]→[Windows Azure SDK Command Prompt]でコマンドプロンプトを起動します。

     「csrun /status」コマンドを実行して、Deployment-Id:の数値を取得します。以下の例では330になります。

    csrun /status実行結果
    c:\Program Files\Windows Azure SDK\v1.3>csrun /status
    Windows(R) Azure(TM) Desktop Execution Tool version 1.3.0.0
    for Microsoft(R) .NET Framework 3.5
    Copyright (c) Microsoft Corporation. All rights reserved.
    
    Using session id 1
    ==================================================================
    Deployment-Id: 330
    Roles:
      WorkerRole1
        0 Started (ProcessId 6544)
    Image-Location: c:\users\nori\documents\visual studio 2010\Projects\WindowsAzureProject15\bin\Debug\WindowsAzureProject15.csx
    
    c:\Program Files\Windows Azure SDK\v1.3>
    

     「csrun /update:<取得したDeployment-Idの数値>;<2.で変更したcscfgファイル>」コマンドを実行して変更を反映します。

    構成設定変更コマンド実行画面
    c:\Program Files\Windows Azure SDK\v1.3>csrun /update:330;"C:\Users\nori\Documents\Visual Studio 2010\Projects\WindowsAzureProject15\bin\Debug\ServiceConfiguration.cscfg"
    Windows(R) Azure(TM) Desktop Execution Tool version 1.3.0.0
    for Microsoft(R) .NET Framework 3.5
    Copyright (c) Microsoft Corporation. All rights reserved.
    
    Using session id 1
    Updating deployment 330 with new settings from C:\Users\nori\Documents\Visual Studio 2010\Projects\WindowsAzureProject15\bin\Debug\ServiceConfiguration.cscfg...
    c:\Program Files\Windows Azure SDK\v1.3>
    

     これで、イベントが発生します。後はブレークポイントなどを設定することでイベントの発生を確認できます。

    イベント発生確認画面
    イベント発生確認画面

     なお、csrunコマンドではインスタンスを減少させることができないなど、エミュレーターとして機能が制限されています。実際にサービスの動作確認を行う際には十分に注意して使用してください。

次のページ
7)Issues with v1.3 SDK

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Windows Azure Tips - 米国MSDNフォーラムウォッチング連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト bird982000(bird982000)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5841 2011/04/20 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング