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

完了

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

関数アプリを作成する

  1. Microsoft Learn アカウントを使用して Azure portal にサインインします。

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

  3. 左側のメニュー ウィンドウの [ カテゴリ] で [ コンピューティング] を選択し、[ 検索サービスとマーケットプレースの 検索] ボックスで 関数アプリを検索して選択します。 [関数アプリ] ウィンドウが表示されます。 作成を選択します。

  4. 従量課金 を選択し、次に 選択 ボタンを押します。 [ 関数アプリの作成 ] ウィンドウが表示されます。

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

    Function App Name は一意である必要があります。 <あなたの名前やイニシャル>のような triggerapp を使用することをお勧めします。 この演習の中で <your-functionapp-name> が表示される場所では、この名前を使用してください。

    設定 価値
    プロジェクトの詳細
    サブスクリプション コンシェルジェ サブスクリプション
    リソース グループ ドロップダウン リストから、サンドボックス リソース グループ [サンドボックス リソース グループ名] を選択します。
    インスタンスの詳細
    関数アプリ名 <your-functionアプリ名>
    オペレーティング システム ウィンドウズ
    ランタイム スタック Node.js
    バージョン 既定値をそのまま使用します
    リージョン 許可されている サンドボックス リージョンの 1 つである最も近い場所を選択します。

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

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

    設定 価値
    貯蔵
    ストレージ アカウント (新規)、既定の名前を受け入れます。
  7. [ 確認と作成] を選択します。

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

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

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

  2. 中央のウィンドウの [関数] で、[Azure portal で作成] の下にある [関数の作成] を選択します。

  3. [ 関数の作成 ] ウィンドウが表示されます。

  4. [ テンプレートの選択] で [ HTTP トリガー] を選択し、[ 次へ] を選択します。

  5. 既定の 関数名承認レベルをそのまま使用します。 作成を選択します。 あなたの関数HttpTrigger1 ペインが表示され、新しいトリガーの基本情報が表示されます。

  6. ウィンドウの上部にある [コードとテスト ] を選択します。 関数[コード + テスト] ウィンドウが表示され、テンプレートから作成された 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" メッセージで応答します。

  7. コードの上には、ファイル名を示すドロップダウン リストがあるパスがあります。 ドロップダウン リストで、 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 は次のようになります。

    https://<your-functionapp-name>.azurewebsites.net/api/HttpTrigger1?code=aUjXIpqdJ0ZHPQuB0SzFegxGJu0nAXmsQBnmkCpJ6RYxleRaoxJ8cQ==
    
  3. この URL をブラウザーに貼り付け、URL の末尾にクエリ文字列パラメーター &name=<yourname>; を追加します。 >name=ディックとジェーン

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

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

おめでとうございます! これで、URL によってトリガーできる関数が作成されました。