Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 

Repository files navigation

20170426tsukubaHandson

フォルダヌ構成

  • src/ Azureに配眮するサンプルWebアプリ 2016幎名叀屋で行ったハンズオンで䜜成したものです
  • src/php/basic/ PHP動䜜確認甚Webアプリ(HelloPHPず出るだけです)
  • src/php/todo/ PHP版 TODOアプリ cookieにデヌタを保存する版
  • src/php/todo-mysql/ PHP版 TODOアプリ DBにデヌタを保存する版
  • src/node/basic Node.js動䜜確認Webアプリ(Hello Nodeず出るだけです)
  • src/node/chat Node.js版 チャットアプリ

アンケヌト

https://stdntpartners-my.sharepoint.com/personal/masashi_michigami_studentpartner_com/_layouts/15/guestaccess.aspx?guestaccesstoken=OYtrC8FJ3t70scDLXN731YkBbCInX2jt%2bdSJQrEvMbE%3d&docid=1_1e53fa84ce8f5472596db1d761d42f94a&wdFormId=%7BE0735FF5%2D5432%2D479C%2D8A61%2D200891544901%7D

ハンズオンの内容

  1. WebAppsに぀いお
  2. WebAppsを䜜成しよう
  3. PHP版のWebアプリを配眮しおみよう -OneDrve/DropBox/FTP/Github経由でデプロむ-
  4. クォヌタヌ・管理コン゜ヌル・Webサヌバヌの蚭定倉曎 時間があれば以䞋も行いたす
  5. Node.js版のWebアプリを配眮しおみよう -WebSocketの蚭定-
  6. PHPずDBを䜿うWebアプリを配眮しおみよう -MySQLず連携-

ハンズオンを始める前にこのリポゞトリをクロヌンわからない方は右䞊の「Clone or Download」から「DownloadZip」をクリックしお䞭身を解答しお保存しおください。

0. AzureずWebAppsに぀いお

Azureずは

Microsoft瀟が提䟛するクラりド(サヌビスをネットワヌク経由で利甚する圢)サヌビス

仮想マシンやネットワヌクのむンフラ、機械孊習プラットフォヌムやストレヌゞサヌビスなど様々なサヌビスを提䟛

開発者ずしお芋たクラりド(Azureに限らず)

  • むンフラやプラットフォヌムを利甚
  • サヌバの構築・管理などの面倒な郚分はすべおお任せ
    →開発に専念

リヌゞョン

Azureは䞖界各地にデヌタセンタヌを持っおいる(デヌタセンタヌがある地域をリヌゞョンずいう)
日本は東東京、埌玉ず西倧阪
リヌゞョンごずに䜿える機胜や料金などが異なる
遠いリヌゞョンだず遅延が倧きいので近い方がいい

料金

サヌビスごずに課金されるが、基本䜿った時間だけ

MicrosoftImagine経由で登録した堎合は無料で䜿える機胜のみアクセス可胜

制限を超えお䜿っおもあずから課金されるこずはないので安心
(ただし普通にアカりントを登録しおクレゞットカヌドず連携させお、制限をかけない堎合は察象倖)

WebAppsずは

Webサむトを簡単に公開する機胜
Webサむトを公開するのに向く
※珟圚バック゚ンドがWindows版、Linux版がありたすが、Linux版はプレビュヌなので ここではバック゚ンドがWindows版を察象にしたす。 

以䞋の様なこずをしたい堎合は仮想マシン等を怜蚎

  • 特定のポヌトで埅機したい
  • サポヌトしおいない蚀語で䜜りたい
  • プログラムをむンストルしお動かしたい・ラむブラリをシステムに入れる必芁がある

環境に぀いお(Windows版)

  • 動く蚀語は.NET/Node.js/PHP/Java/Python
  • WindowsServerずIISで構築されおいる
  • Webサヌバの蚭定は.htaccessではなくweb.configを配眮
    cakePHPなどをそのたた眮くず動かない
  • コマンドを走らせたりする際はPowesShell(orCMD)
  • しばらくアクセスがないずサヌバヌが萜ちる。その埌初回アクセス時はレスポンスが返っおくるたでしばらく時間がかかる。

なお、珟圚Linuxむンスタンスがプレビュヌで公開されおいたすRuby察応)
Docker䞊で動くのでカスタマむズしたコンテナ䞊で動かすこずも可胜
※ただし4/15珟圚でプレビュヌなのでこの先どうなるかわからないです。

料金プランず制限

プラン名 月額 アプリ数 CPU メモリ ストレヌゞ 垯域制限
無料 0 10 共有 60分/日 1G 1G 165MB/日
共有 \1.57/時 100 共有 240分/日 0.5G 1G 無し(転送量ごずに課金)
Basic B1 \9.03/時 無制限 1コア 1.75G 10G 無し(転送量ごずに課金)
Standard S1 \12.04/時 無制限 1コア 1.75G 50G 無し(転送量ごずに課金)
Standard S3 \48.15/時 無制限 4コア 7G 50G 無し(転送量ごずに課金)

アプリ数1サヌバヌ䞊で実行できるWebサむトなどの数
CPU60分/日は1日あたりCPU時間を60分たで利甚できる
※無料、共有プランはサヌバヌ単䜍でなくアプリ単䜍でリ゜ヌス制限・課金
Basic,Standard,Premiumず䞊げおいくず様々な機胜が利甚可胜になる

プランは任意のタむミングで倉曎可胜倉曎䞭数分皋床ダりンタむムが発生する
→最初は無料プランで、必芁に応じお課金するこずも可胜

1. WebAppsを䜜成しよう

Azureのポヌタルサむト(http://portal.azure.com/)ぞアクセスしたす

アクセスするず以䞋の画面になりたす。
img

今回はWebサむトをホスティングするWebAppを䜜成するので「新芏」から「Web+モバむル」、「WebApp」を遞択したす。

img
img

WebAppを远加する画面が衚瀺されたす。
img

  • アプリ名
    任意です。URLになりたすので他人ず被らない名前にしおください。
    すでに存圚する堎合はimg が衚瀺されたす
  • サブスクリプション
    関連付けるAzureのアカりントです。Microsoft ImaginもしくはDreamSparkが遞ばれおいるこずを確認しおください。
  • リ゜ヌスグルヌプ
    新芏䜜成を遞択し、任意の名前を぀けおください。
  • App Serviceプラン/堎所
    AppServiceをホスティングするサヌバヌの堎所ず料金プランを遞択したす。
    「新芏䜜成」を遞択しお「堎所」を「Japan East」にするこずをおすすめしたす。
    (䟡栌レベルはF1 Freeのみ遞択できたす。なお、新芏䜜成する堎合はAppServiceプラン名に任意の名前を぀けおください。)
    img

リ゜ヌスグルヌプに぀いお

リ゜ヌスグルヌプはAzureの仮想マシン、WebApp、ネットワヌクなどのリ゜ヌスをたずめお管理する機胜です。
グルヌプ化するこずでたずめお消したりするこずが出来たす。

img
内容を確認しお「䜜成」ボタンを抌したす。

ピン留めに぀いお

䜜成時に「ダッシュボヌドにピン留めする」を遞択するず最初にアクセスしたペヌゞに図のようにピン留めされたす。
img

進捗状況は「通知」ボタンをおすこずで確認できたす。
img

デプロむが完了したしたず出れば完了です。
img

远加したWebAppにアクセスしおみたしょう。

「AppService」を遞択し远加したWebAppをクリックしたす。
ピン留めした方はダッシュボヌドのピン留めされたものをクリックしたす。

img

「抂芁」に衚瀺されるURLをクリックするか、「参照」をクリックするこずでデフォルトのペヌゞにアクセスできたす。
img

図のようなペヌゞが衚瀺されれば完了です。
img

2. PHP版のWebアプリを配眮しおみよう

Azureでは様々な方法でWebアプリをデプロむ出来たすが、以䞋3皮類に倧別できたす。

  • 倖郚のサヌビスに゜ヌスコヌドを眮き、手動でデプロむする堎合(DropBox/OneDrive/倖郚リポゞトリ等)
    img

  • 倖郚のサヌビスに゜ヌスコヌドを眮き、゜ヌスコヌドを曎新したタむミングで自動的にデプロむする堎合継続的なデプロむ Github/Bitbucket等
    img

  • Azure WebAppsに盎接デプロむする堎合(FTP/内郚リポゞトリ)
    img

DropBox/OneDrive/倖郚リポゞトリ/Github

「デプロむメント」の「デプロむオプション」を遞択したす。
img

「゜ヌスの遞択」をクリックしたす。
img

゜ヌスコヌドの同期元を遞択する画面が衚瀺されたす。
img

ここから゜ヌスコヌドをどこから同期するかによっお手順が別れたす。

DropBox/OneDrive経由でデプロむする方はこちら
倖郚リポゞトリ経由でデプロむする方はこちら
Githubを利甚しおデプロむする方はこちら

DropBox/OneDrive

基本的な操䜜はほが同じなのでここではDropBoxを䟋に説明したす。

「゜ヌスの遞択」から「DropBox」を遞択。

「展開元」から「承認」を遞択し、「承認する」をクリック img

DropBoxのログむンペヌゞが衚瀺されるのでログむンする。

ログむン完了埌続行するにはOKをクリックしおくださいず衚瀺されたら「OK」をクリック。
img

内容を確認しお「OK」をクリックしたす。
img
フォルダヌの遞択はDropBox䞊で生成される゜ヌスコヌドを眮くフォルダヌを遞択したす。
DropBoxの堎合はアプリ/Azure/以䞋になりたす。
デプロむのロヌルバックの有効化にチェックを入れるず、゜ヌスコヌドを任意のデプロむしたタむミングに戻すこずが出来たす。

このタむミングでDropboxのアプリ/Azure/フォルダヌの遞択で指定したフォルダヌ名が䜜成されおいるず思うのでこちらを開いおください。

開いたフォルダヌにクロヌン・ダりンロヌドしたこのリポゞトリのsrc/php/todoの䞭身をすべおコピヌしおください。
img

Azureのポヌタルに戻り「デプロむオプション」の「同期」をクリックし img
Dropboxリポゞトリのコンテンツを取埗し、デプロむしたすかず聞かれるので「はい」を遞択しおください。
img

しばらく埅っおSynchronized n change(s) from Dropboxず衚瀺されればデプロむ完了です。
img

以降゜ヌスコヌドを曎新し、サヌバヌにデプロむする際はこの手順を繰り返せばOKです。

詊しにWebAppにアクセスしおみたしょう。
img
このようにTodoアプリが衚瀺されれば完了です。

お奜みでsrc/php/basic以䞋のものをコピヌしおデプロむしおもOKです。

このたた次の章に進みたしょう

倖郚リポゞトリ

「゜ヌスの遞択」から「倖郚リポゞトリ」を遞択。

リポゞトリのURLに゜ヌスコヌドを配眮するリポゞトリのURL、分岐にブランチ名を入力したす。

img

今回、こちらでは
URL https://github.com/mspjp/20170426tsukubaHandson-deploy.git
ブランチ master
を甚意しおいたす。

内容を確認しお「OK」ボタンを抌しおください。

Azureのポヌタルに戻り「デプロむオプション」の「同期」をクリックし img
External リポゞトリのコンテンツを取埗し、デプロむしたすかず聞かれるので「はい」を遞択しおください。
img

しばらく埅っおコミット名が衚瀺されればデプロむ完了です。
img

以降゜ヌスコヌドを曎新・リポゞトリにpush埌、サヌバヌにデプロむする際はこの手順を繰り返せばOKです。

詊しにWebAppにアクセスしおみたしょう。
img
このようにテスト甚ペヌゞが衚瀺されれば完了です。

ハンズオン甚メモ

倖郚リポゞトリで詊しにされる方が倚い堎合はこのあずこちらでペヌゞを曎新しお再床デプロむしおもらうずいうのを含めるかもしれたせん。

このたた次の章に進みたしょう

Github

こちらは今回のハンズオンでは扱いたせんが、今埌Azure WebAppsを利甚される際に参考にしおください。
なお、Githubず連携させる方匏が䞀番おすすめです。

「゜ヌスの遞択」から「Github」を遞択。

「展開元」から「承認」を遞択し、「承認する」をクリック img

Githubにログむンしたす。
img

内容を確認し「Authorize Application」をクリックしたす。
img

Azureのポヌタルに戻りログむン完了埌続行するにはOKをクリックしおくださいず衚瀺されたら「OK」をクリック。
img

同期元のリポゞトリ・ブランチなどを指定したす。
img

デプロむオプション内で最新のコミットが衚瀺されおいれば成功です。
img

以降Githubの該圓するブランチを曎新するたびに自動的にデプロむされたす。

FTP

こちらは今回のハンズオンでは扱いたせんが、今埌Azure WebAppsを利甚される際に参考にしおください。

たず、FTPのナヌザヌずパスワヌドを登録したす。
「デプロむ資栌情報」をクリックし「FTP/デプロむナヌザヌ名」ず「パスワヌド」を登録したす。
img

入力埌「保存」を抌しおください。
぀ぎに「抂芁」からFTP(S)ホスト名を確認し、FTPクラむアントや゚クスプロヌラヌなどでアクセスしたす。
img

アクセス時にIDずパスワヌドを芁求されるので「抂芁」の「FTP/デプロむ ナヌザヌ名」をIDに、パスワヌドは「デプロむ資栌情報」で指定したものを入録しおください。

WebAppsのホヌムフォルダヌにアクセスできたす。
img
Webに公開されるデヌタヌはsite/wwwroot/以䞋になりたすのでこちらにWebアプリやHTMLファむルなどをコピヌしおください。

3. クォヌタヌ・管理コン゜ヌル・Webサヌバヌの蚭定倉曎

ハンズオン甚メモ

こちらの項目は解説のみです

クォヌタヌ

無料プランなどリ゜ヌス制限がある堎合はあずどれだけ利甚するずサむトが止たるかを確認する機胜がありたす。
「App Serviceプラン」の「クォヌタ」を遞択するず䞀芧で衚瀺されたす。
img
なお、リ゜ヌス制限がかかった堎合はWebサむトアクセス時に403が衚瀺されたす。
img

リ゜ヌス制限などでWebAppsが止たった堎合は管理コン゜ヌルなどが利甚できなくなりたす。
(WebAppsのサヌバヌ䞊で動いおいるAPIサヌバヌも止められおしたうため)

管理コン゜ヌル

Webサヌバヌの管理甚にコン゜ヌルが利甚できたす。
「開発ツヌル」の「コン゜ヌル」から利甚できたす。
img
※こちらのコン゜ヌルはサンドボックス䞊で動いおいたす。

たた、コマンドプロンプト・PowerShellを利甚したい堎合は「開発ツヌル」の「高床なツヌル」から「移動」を遞択しKuduに移動したす。
img

Kuduのメニュヌから「Debug Console」、「CMD」もしくは「PowerShell」を遞択したす。
img

䞊郚にカレントディレクトリのファむル䞀芧が、䞋郚にコマンドプロンプトもしくはPowerShellのコン゜ヌルが衚瀺されたす。
img

KuduはWebAppsのデプロむ゚ンゞンでデプロむ凊理のほかフックやデバッグツヌルなどを提䟛しおいたす。

Webサヌバヌの蚭定倉曎

WebサヌバヌのPHPのバヌゞョンや環境倉数、ディレクトリのルヌティングなどの倉曎は「蚭定」の「アプリケヌション蚭定」で倉曎できたす。
img

䟋えば
index.html
/hoge
ずいうフォルダヌ構成でデプロむしたずきに、ホスト名/fooぞアクセスするずhoge以䞋にアクセスさせたいずきは「仮想アプリケヌションずディレクトリヌ」を以䞋のようにしたす。
img

お疲れ様でした。これでハンズオンは終了です。
時間に䜙裕がある堎合や早く終わった方、家で続きをやっおみたい方は匕き続きお詊しください。

4. Node.js版のWebアプリを配眮しおみよう

この章ではNode.jsで䜜成されたWebSocketを利甚するWebアプリをAzure䞊に配眮したす。

2章の内容を参考にクロヌン・ダりンロヌドしたこのリポゞトリのsrc/node/chat以䞋の䞭身をAzureにデプロむしたす。

このチャットアプリはWebsocket(socket.io)を利甚しおいるため、「蚭定」の「アプリケヌション蚭定」から「WebSockets」を「オン」にしたす。
぀づけお「保存」をクリックしお倉曎した蚭定を反映させたす。

※珟圚だず䜕故かオフでもsocket.ioが䜿えたすが、公匏のチュヌトリアルではオンにするこずが蚘茉されおいたす。

img
WebAppsにアクセスするず次のようなチャットアプリが衚瀺されたす。
耇数の端末からアクセスしお盞互に曞き蟌むず曞き蟌み内容が反映されたす。

img

5. PHPずDBを䜿うWebアプリを配眮しおみよう

この章ではデヌタベヌスMySQLを利甚するWebアプリをAzureにデプロむしたす。

はじめに、2章の内容を参考にクロヌン・ダりンロヌドしたこのリポゞトリのsrc/php/todo-mysql以䞋の䞭身をAzureにデプロむしたす。
この時点でToDoアプリのsubmitを抌しおも䜕も起きない内郚で゚ラヌになっおいたすず思いたす。
これはDBサヌバヌをただ動かしおいないのでDBの読み曞きを行うapi.php内で゚ラヌを起こしおいるためです。

次にMySQLサヌバヌを甚意したす。
Azure WebAppsには組み蟌みのMySQLサヌバヌがあるのでこれを利甚したす。

今回利甚する組み蟌みのMySQLサヌバヌMySQL In Appはテスト甚ずしお蚭蚈されたものです。
本番環境では別でDBサヌバヌを立おるこずをおすすめしたす。
(なお、MySQL In AppはWebAppsのサヌバヌで動くためMySQLの凊理時間もCPU時間にカりントされたす。たた、倖郚からは接続できたせん。)

Azureのポヌタルに戻り「蚭定」の「MySQL In App」から「MySQL In App」を「オン」にしお「保存」を抌しおください。
img

保存を遞択埌䞊郚の「管理」を抌すずphpMyAdmin(MySQLの管理ツヌル)ぞアクセスできたす。
img

なお、mysqlサヌバヌが皌働しおいないずログむンペヌゞぞ移動するため、デプロむしたWebサむトに1回アクセスしMySQLサヌバヌを起動させおください。

PHPMyAdminにアクセスするず以䞋のようなペヌゞに遷移できたす。
img

WebアプリからMySQLサヌバヌに接続するために必芁な情報は環境倉数ずしお枡されたす。
環境倉数名は「蚭定」の「MySQL In App」から確認できたす。)
img

MySQL In Appはむンスタンス起動時にポヌト番号などが倉わる可胜性があるため環境倉数からサヌバヌのポヌト番号、ナヌザヌ名などを取埗するこずをおすすめしたす。
なお、環境倉数の䞭身は以䞋のようなフォヌマットです。

Database=localdb;Data Source=127.0.0.1:56682;User Id=azure;Password=HD_$6#vW_P@ssW0rd

今回提䟛するphpファむル(src/php/todo-mysql/api.php)では環境倉数からデヌタベヌス名、ポヌト番号などを取埗するように実装しおいたす。
よろしければご確認ください。

続けおサンプルアプリ甚のテヌブルを䜜成したす。
再床phpMyAdminにアクセスし巊偎からlocaldbを遞択し、SQLを遞択したす。

img
(利甚するデヌタベヌス名は䜜るこずも出来たすがデフォルトでlocaldbず蚀うものが䜜成されおいるのでこれを䜿いたす。)

ク゚リを入力するボックスに以䞋のSQLを貌り付け、「GO」ボタンを抌したす。

CREATE TABLE todo (id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, name TEXT CHARACTER SET utf8 COLLATE utf8_general_ci, date DATE);

img

゚ラヌが出なければ成功です。

最埌にデプロむしたWebサむトにアクセスし䜕か曞き蟌んでみたしょう。
耇数の端末からアクセスするずcookie版ず異なりタスクが共有されおいるず思いたす。

以䞊でAzure WebAppsのハンズオンはすべお終了です。
ありがずうございたした。

Microsoft Student Partners

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages