50
37

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Azure Functions を試してみた

Posted at

Azure Functions とは?

Microsoftのクラウドサービスのこと。
サーバーレスと呼ばれているものですが、別にサーバーが無い、サーバーが要らないということじゃなくて、
サーバーの存在をほとんど意識せずにWebサービスを作ることが出来るものです。

WebAPIをとても簡単に作ることが出来るフレームワークと言った方が分かり易いでしょうか。

Microsoft Azure

試しにサービスを作ってみる

ポータルから App Service を作成する

ポータルメニューの「すべてのサービス」もしくは「お気に入り」から「App Service」を選択します。
image.png

「追加」ボタンを押します。
image.png

Function App を選択し、サービスを「作成」します。

image.png

作成するアプリ名を設定
image.png
アプリ名:他の利用者と被らないアプリ名(ホスト名)を付けます。
サブスクリプション:無料の人は無料のアカウントを選択します。
リソースグループ:1つのアプリは複数のサービスから構成されるので、それらのグループ名です。
場所:日本であれば「東日本」か「西日本」を選択すれば良いです。Azureのデータセンターが日本に2か所有ります。
Storage:Azure FunctionsがStorageを使用しますので、そのアカウントも併せて作ります。
Application Insights:アプリの動作状況を監視する仕組みです。

作成したアプリはAzureメニューの「すべてのリソース」や「リソースグループ」から辿ることが出来ます。

image.png

「種類」が「App Service」となっているところで実装します。

関数を実装する

image.png
「関数」から「新しい機能」を選択します。

image.png
色んなパターンのテンプレートが用意されています。

HTTPのリクエストに対して応答を返す標準的なものや、POSTされたデータをテーブルに保存するもの、さらにはタイマーで起動するものなど。様々な入力パターンをトリガーとして、様々な出力パターンの組み合わせが選択出来ます。
後からカスタマイズも可能です。
これらを連携させてアプリを構築していきます。

HTTP triggerのテンプレートから作成してみる

HTTP要求に対して応答を返す機能です。
標準で、C#, F# JavaScriptが開発言語として選べます。
オプションでPhthonやTypeScriptなども可能なようです。

ここでは、言語をJavaScriptで作成してみます。
「承認レベル」はFunctionにしておきます。

以下がテンプレートとして生成されます。
image.png
既に、「実行」ボタンを押すと「ログ」が出力されて「出力」欄にHTTP応答の内容が出力される状態です。

実装方法など、ドキュメントは以下に有ります。
Functionsのドキュメント
言語毎のドキュメントは以下です。
サポートされている言語

入出力をカスタマイズする

左側メニューで「統合」を選びます。
image.png
「トリガー」:この関数が動くきっかけです。この場合はHTTPのリクエストが有った場合です。
「入力」:この関数で参照したいストレージデータです。
「出力」:処理結果の出力先です。この場合はHTTP応答です。テーブルやキューなどを出力先に追加することも出来ます。

それぞれ設定されている欄を選択することで、詳細を設定します。

最後に

Azure Functions は、WebAPI、Webサービスをとても簡単に作ることが出来ます。
HTTPも、フレームワーク側で要求を処理してくれたものを変数で受け取って、応答も変数にセットするだけです。
開発者はその間の処理を書くだけで良いです。
ストレージへの入出力についても、バインドされた変数への読み書きだけなので非常に簡単です。

アプリに大量のリクエストが来た時もサーバー台数を増やすなんてことも考えなくていいです。Azureが自動的にやってくれます。
サーバーのハード障害も心配要りません。自動的に切り替わります。
ユーザはもうサーバーの面倒を見る必要は無く、ただアプリロジックを書けばいいだけなのです。

50
37
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
50
37

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?