Azureのコード実行サービスAzure Functionsについて

最近巷で話題になっている、クラウドサービスを活用したサーバレスの構成ですが、AWSの場合は「AWS Lambda」が有名かと思いますが、今回はAzureのAWSで使われているLambdaのようにプログラムを実行できるサービスは何か調べてみたところ「Azure Functions」なるものがそれにあたるということがわかりました。では、この「Azure Functions」どんなことができるのか調べてみました。

概要

概要を知るにはまず公式サイトからということで、公式サイトのドキュメントから抜粋させて頂きます。
Azure Functionsは、データの処理、システムの統合、モノのインターネット (IoT) の操作、単純なAPIとマイクロサービスの構築に適した優れたソリューションです。Azure Functionsは、画像処理や注文処理、ファイルの保守、バックグラウンドスレッドで実行する実行時間の長いタスクや、スケジュールに従って実行するタスクにサーバを立てずにコード実行ができるサービスです。

【主な特長】
■利用可能言語
C#、F#、Node.js、Python、PHP、Batch、Bash等
■様々なライブラリにも対応
Node.JSのNPMや.NETのNugetなどの外部ライブラリにも対応
■開発も柔軟に
関数をポータル内で直接作成することも、継続的な統合を設定し、GitHubやVisual Studio Team Services などのサポート対象開発ツールを使ってコードをデプロイすることもできます。
※Visual Studio Team Servicesとは
チームがコードを共有し、作業を追跡し、ソフトウェアを出荷するためのサービスです。

コード実行に用いられる機能

Azure Functionss は、コードの実行を開始する機能(トリガー)とデータの入出力用コードを単純化する機能(バインド)をサポートしています。
※トリガー機能
カスタムコードを実行するために使用されるイベント応答のことです。
※バインド機能
コードを目的のトリガーや関連する入出力データに接続するために使用される必要なメタデータを表します。 各関数の Function.json ファイルには、すべての関連バインドが含まれます。 関数の入力バインドと出力バインドの数に制限はありません。 ただし、各関数でサポートされるトリガーのバインドは 1 つのみです。

以下は、シナリオに合わせたトリガーとバインドについて表にまとめたものになります。


■主なトリガー
・BlobTrigger – Azure Storage BLOBがコンテナーに追加されたときに、それを処理します。 画像のサイズ変更時などのタスクで利用ができます。

・EventHubTrigger – Azureイベントハブに送信されたイベントに応答します。
主に、IoTがらみのタスクで利用ができます。

・HTTPTrigger – HTTP 要求を使用して、コードの実行をトリガーします。

・QueueTrigger – Azure Storage キューにメッセージが配信されたときに応答します。

・ServiceBusQueueTrigger – メッセージキューを受け、コードを他のAzureサービスまたはオンプレミスのサービスに接続します。

・ServiceBusTopicTrigger – トピックを書くことで、コードを他のAzureサービスまたはオンプレミスのサービスに接続します。

・TimerTrigger – 事前定義されたスケジュールに従ってクリーンアップなどのバッチタスクを実行します。

料金

さて、概要機能を紹介してきましたが、気になる料金について紹介したいと思います。
Azure Functions従量課金プランでは、リソースの使用量と実行回数に基づいて課金されます。以下の料金表は、従量課金プランでの料金となります。
また、Azure FunctionsをApp Serviceプランの中で実行することもできます。その場合は、App Servicesの利用料になります。


今回Azure Functionsを調べてみて、使い方によって、様々なメリットを発揮できるサービスではないかと感じました。

今回はここまでになります。
最後まで、ご覧いただきありがとうございました。

次回もお楽しみに。

この記事を書いた人

azure-recipe-user