演習 - Webhook によってトリガーされる Azure 関数を作成する

完了

この最初の演習では、Azure Functions で GitHub Wiki イベント メッセージを解析するコードを作成します。 Webhook メッセージを受信したときに実行するように関数を構成します。

関数アプリを作成する

  1. ご自分の MS Learn アカウントを使用して Azure portal にサインインします。

  2. [リソースの作成] を選択します。 [リソースの作成] ウィンドウが表示されます。

  3. 左側のメニュー ペインの [カテゴリ] で、[コンピューティング] を選択し、[Search services and marketplace](サービスとマーケットプレースの検索) で「関数アプリ」を検索して選択します。 [関数アプリ] ペインが表示されます。

  4. [作成] を選択します。 [関数アプリの作成] ウィンドウが表示されます。

  5. [基本] タブで、各設定に対して次の値を入力します。

    注意

    関数アプリ名は一意である必要があります。 <ご自分の名前やイニシャル>triggerapp のような名前を使用することをお勧めします。 この演習では、<your-functionapp-name> と書かれているところではすべて、この名前を使用します。

    設定
    プロジェクトの詳細
    サブスクリプション コンシェルジェ サブスクリプション
    リソース グループ ドロップダウン リストから、サンドボックス リソース グループ [サンドボックス リソース グループ名] を選択します。
    インスタンスの詳細
    関数アプリ名 <your-functionapp-name>
    発行 コード
    ランタイム スタック Node.js
    Version 既定値をそのまま使用します
    リージョン 許可されている "サンドボックス リージョン" の中から、ご自分に最も近い場所を選択します。
    オペレーティング システム
    オペレーティング システム Windows
    ホスティング
    ホスティング オプションとプラン 従量課金プラン (サーバーレス)

    無料のサンドボックスを使用すると、Azure グローバル リージョンのサブセットにリソースを作成できます。 リソースを作成するときは、次のリストからリージョンを選択します。

    • 米国西部 2
    • 米国中南部
    • 米国中部
    • 米国東部
    • 西ヨーロッパ
    • 東南アジア
    • 東日本
    • ブラジル南部
    • オーストラリア南東部
    • インド中部
  6. [次へ: ストレージ] を選択して、[ストレージ] タブを開きます。各設定に対して次の値を入力します。

    設定 [値]
    Storage
    ストレージ アカウント (新規) で、既定の名前のままとします。
  7. [Review + create](レビュー + 作成) を選択します。

  8. Azure によってエントリが検証されます。 検証が終了したら、[作成] を選択します。

Webhook でトリガーされる関数を作成する

  1. デプロイが完了したら、[リソースに移動] を選択します。 "関数アプリ" の [概要] ペインが表示されます。

  2. [関数] で、[Azure portal で作成] を選択します。

  3. [関数の作成] ペインが表示されます。

  4. [テンプレートの選択][HTTP トリガー] を選択し、[作成] を選択します。 "関数" の [HttpTrigger1] ペインが開き、新しいトリガーの要点が表示されます。

  5. 左側のメニュー ウィンドウの [開発者] で、[コードとテスト] を選択します。 "関数" の [コードとテスト] ペインが開き、テンプレートから作成された JavaScript ファイルが表示されます。 次のコードのようになります。

    module.exports = async function (context, req) {
        context.log('JavaScript HTTP trigger function processed a request.');
    
        const name = (req.query.name || (req.body && req.body.name));
        const responseMessage = name
            ? "Hello, " + name + ". This HTTP triggered function executed successfully."
            : "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.";
    
        context.res = {
            // status: 200, /* Defaults to 200 */
            body: responseMessage
        };
    }
    

    index.js ファイルは、ポータルによって生成される JavaScript 関数です。 要求があると、クエリ文字列として、または要求の本文の一部として渡された名前が読み取られ、応答として "Hello" メッセージが返されます。

  6. コードの上には、ファイル名を示すドロップダウン リストを含むパスがあります。 ドロップダウン リストから [function.json] を選択します。 テンプレートから作成された JSON ファイルが表示されます。 次のコードのようになります。

    {
        "bindings": [
            {
                "authLevel": "function",
                "type": "httpTrigger",
                "direction": "in",
                "name": "req",
                "methods": [
                    "get",
                    "post"
                ]
            },
            {
                "type": "http",
                "direction": "out",
                "name": "res"
            }
        ]
    }
    

    JSON バインディングでは、関数アプリの URL に向けられた HTTP GET および POST 要求によって関数がトリガーされるように指定します。

関数のトリガーをテストする

  1. 上部のメニュー バーで [関数の URL の取得] を選択します。

  2. [関数の URL の取得] ダイアログ ボックスの [キー] ドロップダウン リストで、[関数キー] の下にある [既定値] を選択します。 [URL] フィールドで、[クリップボードにコピー] アイコンを選択します。 URL は次のようになります。

    https://<your-functionapp-name>.azurewebsites.net/api/HttpTrigger1?code=aUjXIpqdJ0ZHPQuB0SzFegxGJu0nAXmsQBnmkCpJ6RYxleRaoxJ8cQ==
    
  3. この URL をブラウザーに貼り付け、URL の末尾にクエリ文字列パラメーターを追加します: &name=<yourname>。たとえば、&name=Dick および Jane。

  4. 要求を実行するには、Enter キーを押します。 関数から返された応答がブラウザーに表示されます。 これは次のように表示されます。

    Hello Dick and Jane. This HTTP triggered function executed successfully.
    

お疲れさまでした。 これで、URL でトリガーできる関数が作成されました。