5分でわかる!Azure Functions の使い方

クラウド
クラウド
スポンサーリンク

Azure Functions(アジュール ファンクションズ)は、サーバーの構築や保守を必要することなく、プログラムコードを実行してくれるマイクロソフトが提供するクラウドサービスのひとつです。必要に応じてスケーリングもしてくれるのでサーバの管理が一切不要になるため「サーバーレスコンピューティング」と呼ばれることもあります。そこで今回は、Azure Functions の簡単な使い方をまとめてみました。

リソースグループの作成

まずはじめにリソースグループを作成します。Azure のリソースグループは、GCPで言うところのプロジェクトに該当するものです。リソースグループを削除すれば所属しているリソースをまとめて削除することができるので、片付けを簡単にすることができます。

Azure Portal にログインしたら「リソースグループ」を選択して「+追加」をクリックします。

適当なリソースグループ名を入力して、リソースグループの場所を選択したら「作成」をクリックします。

以上でリソースグループが作成されます。

Function App の作成

続いて Function App を作成します。

「+リソースの作成」>「Compute」>「Function App」をクリックします。

適当なアプリ名を入力して、先ほど作成したリソーズグループを選択します。(次に続きます)

場所とお好みのランタイムスタック(プログラム言語)を選択して、Application Insights の場所も選択したら「作成」をクリックするとデプロイが開始します。

2〜3分でデプロイが完了します。左メニューの「Function App」をクリックすれば、アプリが作成されていることが確認できます。

関数の作成

本題の関数(Functions)を作成します。

作成したアプリを選択して関数の「+」をクリックします。

開発環境は「ポータル内」を選択し「続行」をクリックします。

関数のトリガーとなる「webhook + API」を選択し「作成」をクリックします。

下のようなコードの関数が作成されます。そのまま実行してみますので「関数のURLの取得」をクリックします。

URLをコピーします。クエリパラメータ「code」の値が APIキーに該当するもので、Azure Functions では「関数キー」と呼ばれます。

余談ですが関数キーは「管理」の画面でも確認することができます。

コピーしたURLにリクエストを実行して、下のようなレスポンスが返ってくればOKです。

curl "https://sample-20181203.azurewebsites.net/api/HttpTrigger1?code=<関数キー>"
 
Please pass a name on the query string or in the request body

オリジナルの関数の作成

今回はサンプルとして、クエリパラメータ「string」に指定した文字列を返すだけの関数「echo」を作ってみます。

module.exports = async function (context, req) {
    var string = req.query.string + '\n';

    context.res = {
        status: 200,
        body: string
    };
};

 

関数の「+」をクリックします。

テンプレート「HTTP trigger」をクリックします。

作成する関数名を入力して「作成」をクリックします。

関数のコードを入力して「保存」をクリックします。

右にスクロールして「テスト」タブを選択します。

HTTPメソッド「GET」を選択し、クエリパラメータ「string」を追加してなにかしら値を入力したら、ページ下部の「実行」をクリックします。

出力にクエリパラメータ「string」の値が表示されていればOKです。

プログラムにエラーがある場合は、「ログ」ウィンドウにエラーの詳細を出力してくれるので、デバックすることもできます。

最後に作成した関数「echo」を実行します。(赤字が先ほどのURLから変更した部分です)

curl "https://sample-20181203.azurewebsites.net/api/echo?string=HelloWorld&code=<関数キー>"
 
HelloWorld

おわりに

はじめて Microsoft Azure を使ってみたのですが、ランタイムのデフォルト値が「.NET」になっているところに Microsoft らしさを感じました(^^) こんなところがこれまで Windows を中心にサーバー構築や開発をされてきた方には、安心して使えるクラウドサービスなのかもしれませんね。

コメント

  1. 鈴木文彦 より:

    こんにちは。
    とても詳しい内容で参考にさせていただいてます。

    少し質問があります。
    現在考えているWEBサイトはLMS(トレーニングサイト)なので、
    Azureの機能は最低限のもので構わないのですが、早速AzureのSubscriptionページにアクセスすると、Publishの項目(CodeとDocker Container)やRuntime Check(プルダウンメニュ)が新たに追加されていました。
    もし可能でしたら、これらの項目は何を選択すべきか教えていただけると助かります。

    すみませんがよろしくお願いします。

    • あぱーブログ あぱーブログ より:

      >鈴木文彦さん
      コメントありがとうございます。

      私の環境(Azure Portal)で確認してみたのですが、
      コメントの内容を確認できませんでした。
      お力になれず申し訳ございません。

タイトルとURLをコピーしました