azure (5)

決定版 静的CMSによるAzure Storageでのサイト構築

目的PHP等を使って動的にサイトを配信するのではなく、先にコンテンツを構築しHTMLファイルとして配信する静的サイトを構築する。その後、生成されたファイル群をAzure Storageに配置しWebサイトの公開を行う。 今回はPubliiというCMSを使うことで、これまでの静的サイト構築で必須だった黒い画面を使わない流れを提示したい。静的コンテンツによるサイト構築は非常にテクニカルな趣があったが、今回はここをグッと下げた方法としてご紹介したいと考えている。 Azure StorageでのWebサイト配信では、デフォルトファイルの設定が行えなかったため工夫が必要であった。(つまり、〜/とアクセスされたら〜/index.htmlを返す動き) パターン1としては「Azure Storage + CDN」という方式になる。 これはCDNの機能を使い、URLのrewriteを行うパターンであるが、設定に少々癖があり慣れが必要という弱点がある。また、使うCDNによって設定が反映される時間がかかったりする。 パターン2としては「Azure Storage + Azure Functions Proxy」という方法。 こちらはサイトの前段でAzure Function Proxyを使いマッピングを行う。このパターンは設定が楽ではあるもののサイトのディレクトリ構造に従ってルールを作成するため手間が掛かる。 また、Functionsの特性からリクエスト毎にProxyが起動し、稼働して、去っていくという挙動をするため、 サイトにアクセスすると独特のもっさり感が漂よう。(これはそういうものだから当たり前の話) 構築方法については当ブログの記事にまとめてあるので詳細はそちらを参照のこと 今回は一番素直なパターンである「Azure Storageの静的サイトホスティング機能(プレビュー)」を使ってみることにした。 目的で紹介したPubliiというCMSはELECTRONが使われているのでOSを問わず使える。一通り目を通したが、機能的にCMSに求められるものが実装されており、GDPR対応でよく見かけるようになったcookieのアラートも実装されていて、非常に最近の事情を考慮した機能が提供されている。今回はこれを使ってみたい。 次にアップロードである。 公式ドキュメントではAzure CLIを使ってファイルをアップロードすることとなっている。2018年9月26日現在、静的サイトホスティングはプレビューということもあり、このStorageにファイルをアップするところが少々厄介だ。 そこで、今回はVisual Studio Codeの拡張機能であるAzure Storageを使うことにした。 この拡張機能には Deploy to Static Website という機能があり、指定したディレクトリの配下を丸ごとStorageのサイトホスティング専用の場所へアップロードすることができる。 詳細なドキュメントはこちら ちょっとアップしたいだけなのに大げさではあるが、著者としては普段から使っているツールなので凄く楽なんです。 さて、本編であるが詳しい手順はそれぞれのドキュメントがしっかり描かれているので、そちらを参照してほしい ポイントとしては、Server Configurationは残念ながらAzureが無いので、Manual Uploadを選ぶこと。 Sync…

by Yuya Yoshida

Visual Studio Live Shareで遊んでみる

Build2018にて発表があったVisual Studio Live Shareを早速試してみた。複数人数で使うものではあるが、個人でMacとWinを両方使っていたりすると役に立ちそうと思ったので、今回はブログを書く目的でOne Noteも使いつつ作業した。 実験環境は以下の通り Win版、Mac版共に最新版である1.23.0へ更新してから作業は実施した。 One NoteではWinとMacの間でスクショを共有したり、メモを残したり、URLの受け渡しのために使う事となった。 まず、以下のURLから機能拡張をインストールする。 Visual Studio Live Shareの公式ページ Win/Mac両方のVSCodeに機能拡張(Extention)をインストールする。 次に、VSCode左下にSign inというのが現れるのでクリックする。 ログインアカウントとして使えるのはMicrosoftアカウントかGithubのアカウントのようだ。 ここではMacをGithubのアカウントでログインし、Winの方はMicrosoftアカウントにした。 (なお、使ったのは会社のアカウントなのでいわゆる「組織」アカウント) ログインが完了するとアカウント名が表示され、Shareが表示された 共有をしたい方のマシン、今回はWinの方でShareをクリックする。 Win版ではこの後Firewallを超えた通信をさせるか確認画面が出た。 少し待つと画面右下からニョキッとメッセージが表示される。 どうやらURLがクリップボードに入っているようだ。 マシン間の情報共有のためにOne noteを使っていたのでWin側からURLをペーストし、Mac側でURLをクリックした。 許可をクリックするとMac版のVS CodeでWin側に表示されている内容と同じものが表示される。 また、ファイルエクスプローラーには同一のワークスペース内のファイルも表示される。(ただし、一定時間動かないと名前は非表示になった) カーソルを動かしてみると、相手側にも位置とアカウント名が表示されている。 もちろん、Win から Mac、MacからWinの両方が共有できた。 あくまでファイルと編集している場所が共有される感じなので、画面のハイライトは共有されない。つまり、機能拡張を揃えておくと良いと感じた。 現在は総合ターミナルの共有は身提供であり、今後の予定に入っているので期待して待とう。 今回のネタではWindowsとMacを両方使いながらスクリーンショットを撮りまくり、かつメモを残すという作業が必要だ。 この両方のスクショを共有しながら作業するのは、工夫しないと非常に非効率になる。 今回はMacとWin両方にOne Noteが入ってたので、スクショをとっては貼り付けメモを残して行った。 この記事を書くときは最後にMarkdownで書いているので、One Noteに貼った画像を順次ファイルに落としていき内容を書いている。 ・・・なんで今までこうやって来なかったのだろうか。便利だ。 ビデオチャットやグループチャット系と組み合わせてリモート共同作業 会議の時のメモ書きを共同で作業する…

by Yuya Yoshida

Azure Container InstancesのGAにちなんだ実験

コンテナインスタンスが遂にGAした。そして、非常にパワーアップしたのと、さらに楽しみな話がアナウンスされている。 Azure Container Instances now generally available ここでは折角なので色々試してみようと思う。 これまでのリージョンに加え、現在アナウンスされているContainer Instancesが使えるリージョンは以下の6つだ。 西ヨーロッパ、北ヨーロッパ、米国西部、米国東部、米国西部2、東南アジア West US, West US 2, East US, West Europe, North Europe, and Southeast Asia. 素朴な疑問として、日本から使うとどのくらいレイテンシーがあるのだろうか。 気になったので確かめてみる。 それぞれの地域にNginxを立ててデフォルトページを返すようにしてリプライの速度を5回計測する。 手順は以下の通りだ。 インスタンスの作成はAzure Cloud Shellから行った。(以下、その一部) yuya@Azure:~$ az group create -n pakuecitest2 -l northeuropeLocation Name----------- ------------northeurope pakuecitest2yuya@Azure:~$ az container…

by Yuya Yoshida

Azure Web AppsのHTTP/2対応を確認してみる

Azure App Service(つまり、AzureのPaaSプラットフォーム)にて、HTTP/2への対応が行われたとのアナウンスが発表されている。 Announcing HTTP/2 support in Azure App Service 折角の機会なので、HTTP/2について勉強しがてら動作を確認してみよう。 HTTP/2の詳細に付いては以下のリンクを見ていただくのがよいかと思う。私が読んで参考になったものを3つご紹介する。 Wikipedia HTTP/2 Google HTTP/2概要 キャッシュ屋blog HTTP/2の特徴 HTTP/1.1との違いについて 簡単にまとめると要点は以下の通り ということになる。では、サーバ側にはどんな設定が必要かを調べてみると、こちらのお話がとても詳しく書かれている。 さくらのナレッジ HTTP/2を実際に使用するためのサーバー設定 今回はアナウンスにあった通り、Azure App SerivceのWeb Appを使ってHTTP/2の様子をみてみようと思う。 今回の手順はAzure Portalの対応が行われていないため少し特殊となる。今後Portalの対応が行われれば環境面での設定は楽になるが、個人的にはAzureの裏側を垣間見ることができるので是非トライしてもらいたい。 ステップとしては以下の通り AzureにてWeb Appを準備する。手順は以下を参考に。 Azure で静的な HTML Web アプリを作成する 紹介されている手順ではAzure Cloud Shellを使う方法が紹介されている。不慣れな場合はポータルを使ってWeb Appを作成でも同じことができる。ポータルで作業される場合は以下のポイントを抑えること。 また、、公式ドキュメントの手順はサンプルコンテンツをCloud Shellの環境にクローンするようになっているが、手っ取り早くやりたい場合は以下のリポジトリをForkし、GithubからWeb Appへのデプロイするように設定するという方法もある。(個人的にはこっちの方が好き) Fork元のリポジトリは…

by Yuya Yoshida

静的サイトとAzureのマネージドサービスによるサイト構築

当ブログはMicrosoft Azureの各サービスを利用して構築した。ここでは、何をどのように使ったかについてまとめておこうと思う。

by Yuya Yoshida