Windows PowerShell , C# ポケットリファレンス

よし、これでAzureの運用はばっちり。








開発ファブリックにGlassFishがのらない(JettyはOK)

開発ファブリックでGlassFishを起動しようとすると、

すでに管理ポート 4848 を使用しているプロセスがあります -- GlassFish サーバーの別のインスタンスだと思われます。
コマンド start-domain が失敗しました。

と言われて起動できない。
ホストOSで同じコマンドを実行するとGlassFish起動できるのに。
(もちろんホストのGlassFishはstopしてから、開発ファブリックを確認。netstatみても4848なんて誰も使ってないし)

Jettyは開発ファブリックでも実行可能。
ただlocalhostでは引けない。hosts をみてくれないのかな。謎。

  • 開発ファブリックでJetty








Java Servletコンテナをのせてみる

JDKGlassFish(またはJetty)とwarは、あらかじめBlobに置いておいて、スタートアップタスクでローカルストレージにコピってから起動するという、トランザクション課金節約方式。
ぜんぶRun()の中に書いちゃったけど、スタートアップコマンドでPowerShellから起動したほうがカッコイイのか?とか思ったり。(そこらへんの.NETのオキテがまだ良くわからない。教えてマルモ!!)


glassfish(約90MB)とjdk(約80MB)のunzipに時間がかかる(インスタンスサイズをケチっているからかもしれないけど)ので、unzipのプロセスはWaitForExitして、全部終わってからglassfishを起動しないとうまくいかない。


Input Portは80:8080にしておくと幸せになれるかも。
管理コンソール使う場合は、そこもあけておく。

  • Jettyも使えそう(warがどこに展開されるのか謎。まさか/tmpでは・・・)

  • GlassFish起動前にwarを所定の場所に持ってきておけば、もちろんautodeployばんざい。Blobから持ってくる方式なら、フェールオーバーな夜も安心です。







inputportがListenしてるか確認する

  • MSからPortqryをダウンロードして適当な場所に展開(自分のローカルのPCにね)
  • コマンド実行

$ PortQry.exe -n xxxxx.cloudapp.net -p TCP -e 80

  • 実行結果

Querying target system called:

xxxxx.cloudapp.net

Attempting to resolve name to IP address...


Name resolved to xxx.xxx.xxx.xxx

querying...

TCP port 80 (http service): FILTERED

リッスンしてないし・・・ヽ(;´ Д `)ノ ナンデ



(参考になりそうなページ)
http://www.atmarkit.co.jp/fwin2k/win2ktips/231telnetcmd/telnetcmd.html
http://itpro.nikkeibp.co.jp/article/COLUMN/20060920/248522/
netstat -a など








AzureRPS!

http://www.rockpaperazure.com/

USで、AzureにBotをデプロイしてエントリーするじゃんけん大会が行われている!
12/16までの毎週金曜日、上位5位のBotに$50ギフトカード、
そして全エントリーの中から4名に豪華商品が。
$5000の旅行って、すごっ!いいなー。
MS日本法人も、クラウディアの誕生日にこれやればよかったのに。

ぐー、ちょき、ぱー 以外に、ダイナマイトと水風船があるのか面白い。
参加できないけど、Botデプロイしてみよー。

  1. 管理ポータルから空のホステッドサービスを作っておく。たぶんストレージも作っておく。
  1. サイトからDownload the bitsをクリックしてVSのソリューション一式ダウンロード。zipを展開すると、BotLabとMyBotというフォルダがあるんで、とりあえずBotLabのソリューションをVS2010などで開いて、適当に作ったHosted ServiceにDeployしちゃう。デフォルトでXS×1という親切設計。プロジェクトを右クリックして発行で、ダイアログの言いなりにしていれば、うまくいった。(Windows7じゃないひとは、きっと管理ポータルからAzureService.cspkgとServiceConfiguration.Cloud.cscfgをアップロードするんだと思う。やりかたは英語を読んでがんばって。)
  1. デプロイした画面にアクセスするとパスワードを入れる画面があるので、入れてみると、Labの画面が出る。とりあえずそのままおいておく。
  1. 次はBotを作る。VSでMyBotのソリューションを開くと、VBとCS(とFS)の雛形があるので好きなほうを選ぶ。アセンブリ名も好きにする。私はデフォルトのままでしょぼいことになっていますが。
  1. MyBot.csにいくつかサンプルが書かれていて、デフォルトがランダムで出すやつになっている。とりあえず一回そのままビルドしちゃう。
  1. さっきAzureにデプロイしたBotLabのページで、ビルドしてできたdllをアップロードする。すると、最初からあるBot3つに、いまアップロードしたBotの合計4個でたたかえるようになる。
  1. Start Battleボタンを押すと、4つのBotが勝負した結果表示される。Botは修正できるので、アルゴリズムを考えてコードを書いて遊んでみると、プログラミングの勉強になるかもねー。
  1. Enter the Contestで実際のコンテストに参加できるんだけど、登録時に住所入れるところがあって、CountryがUSしか選べない・・・(涙) 参加するとTシャツがもらえるみたいだね。