SHOEISHA iD

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

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

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

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

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

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

4)Does remote desktop use up an endpoint?

  • 質問:

     リモートデスクトップ接続にはエンドポイントを使用しますか?[開発][初級]

  • 回答:

     はい。エンドポイントを2つ使用します。

  • 解説:

     Windows Azure SDK 1.3以降ではコンピュートサービスに対してリモートデスクトップ接続する機能が追加されました。これにより、インスタンスを手元の環境で直接触って操作することが可能になります。

     ただし、インスタンスに対して操作を行った場合も、その結果は永続化されないので注意が必要です。例えば、あるインスタンスがWindows Azureのデータセンター内でのハードウェア障害などでダウンした場合、自動的に他のハードウェアに再デプロイしてサービスを再開されます。しかし、その際の設定はデプロイ時のパッケージファイルによってしまいます。つまり、デプロイ後にインスタンスに対して行った操作は再デプロイした時点で消えてしまうということです。そのため、リモートデスクトップ接続はあくまで検証/調査用途に絞って使用することが重要です。

     さて、このリモートデスクトップ接続ですがエンドポイントを2つ使用します。通常はGUIでリモートデスクトップ接続を設定するので意識しませんが、サービス定義ファイル(ServiceDefinition.csdef)を確認すると、使用時にはRemoteAccessとRemoteForwarderの2つのプラグインがインポートされるように定義されています。

    <Imports>
      <Import moduleName="RemoteAccess" />
      <Import moduleName="RemoteForwarder" />
    </Imports>
    

     この2つのプラグインで通信の設定を行っています。

     RemoteForwarderプラグインではInput Endpointを定義していて、ポート番号は3389番になります。ここで外部からのリモートデスクトップ接続の要求を受け付けます。またRemoteAccessではInternal Endpointを定義しています。ここで、要求を受け付けたインスタンスから実際に接続するインスタンスに通信が転送されます。この2つでエンドポイントを使用しているため、実際にサービスで使うことができるエンドポイントが3つに制限されてしまいます。

     リモートデスクトップ接続は検証/調査用途の機能なので、エンドポイントを2つ使うことによるアプリケーション全体への影響を考慮した上で使用してください。

5)win 32 dll application dependencies

  • 質問:

     サードパーティ製のCOMコンポーネントを読み込んでAzureアプリケーションを動作させることはできますか?[開発][中級]

  • 回答:

     スタートアップタスクを使用して、regsvr32.exeでCOMコンポーネントを登録することで使用可能です。

  • 解説:

     3rdパーティ製のDLLを使用したいからの質問のようでした。日本でも同じようなケースは発生すると思います。

     スタートアップタスクとは、「スタートアップ」という言葉から連想できるようにインスタンス起動後にアプリケーションが開始するまでの間に何かしらの動作を行うための機能です。この期間でソフトをインストールしたりアプリケーションの設定を行うことが可能です。今回はCOMコンポーネントを登録しています。では、具体的な手順を見ていきたいと思います。

    1. ビルド前イベントとして、regsvr32.exeでCOMコンポーネントを登録する

     Windows Azureではアプリケーションをビルド/パッケージ化してデプロイを行います。そのため、ビルド前に使用するCOMコンポーネントを登録する必要があります。各ロールプロジェクトのプロパティからビルドイベントを選択して、ビルド前に実行するコマンドラインで登録を行います。

    2. ビルド後イベントとして、regsvr32.exeでCOMコンポーネントの登録を解除する

     ビルドが終われば、サービス提供時はスタートアップタスクでCOMコンポーネントを登録するのでこの時点では登録を解除します。本来ならば必要ない作業ですが、コンピュートエミュレーターでデバッグする際のスタートアップタスクの動作確認のため行うことをおすすめします。

    3. スタートアップタスクへ登録するためのバッチファイルの作成とスタートアップタスクへの登録

     クラウドサービスプロジェクトのサービス定義ファイル(ServiceDefinition.csdef)にスタートアップタスクを登録します。ここで注意しなければならないのは、executionContextをelevatedに設定して管理者権限で動作させることとtaskTypeをsimpleに設定して、バッチファイルが終了するまではアプリケーションが起動しないように設定することです。

     これで完了です。後は実際に動作確認を行ってください。今回は簡単な手順のみをご説明いたしますが、詳細はアメリカのマイクロソフト社でサンプルアプリケーションその解説(英語)が提供されていますので、そちらをご参照ください。

     このように、スタートアップタスクを使用することで、これまで以上に柔軟にアプリケーションを構築できるようになりました。スタートアップタスクは、パッケージファイルに含まれてインスタンスの展開時に動作するので、リモートデスクトップ接続で接続して設定変更する場合と異なり、変更の永続化が保証されます。リモートデスクトップ接続とスタートアップタスクは同じことを行いますが、永続化の観点でスタートアップタスクでの変更を最初に検討することをお勧めします。

次のページ
6)testing RoleEnvironment.Changing and RoleEnvironment.Changed event handlers in development fabric?

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

  • 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」など、さまざまなカンファレンスを企画・運営しています。

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

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

メールバックナンバー

アクセスランキング

アクセスランキング