演習 - Webhook によってトリガーされる Azure 関数を作成する
この最初の演習では、Azure Functions で GitHub Wiki イベント メッセージを解析するコードを作成します。 Webhook メッセージを受信したときに実行するように関数を構成します。
関数アプリを作成する
ご自分の MS Learn アカウントを使用して Azure portal にサインインします。
[リソースの作成] を選択します。 [リソースの作成] ウィンドウが表示されます。
左側のメニュー ペインの [カテゴリ] で、[コンピューティング] を選択し、[Search services and marketplace](サービスとマーケットプレースの検索) で「関数アプリ」を検索して選択します。 [関数アプリ] ペインが表示されます。
[作成] を選択します。 [関数アプリの作成] ウィンドウが表示されます。
[基本] タブで、各設定に対して次の値を入力します。
注意
関数アプリ名は一意である必要があります。 <ご自分の名前やイニシャル>triggerapp のような名前を使用することをお勧めします。 この演習では、<your-functionapp-name> と書かれているところではすべて、この名前を使用します。
設定 値 プロジェクトの詳細 サブスクリプション コンシェルジェ サブスクリプション リソース グループ ドロップダウン リストから、サンドボックス リソース グループ [サンドボックス リソース グループ名] を選択します。インスタンスの詳細 関数アプリ名 <your-functionapp-name> 発行 コード ランタイム スタック Node.js Version 既定値をそのまま使用します リージョン 許可されている "サンドボックス リージョン" の中から、ご自分に最も近い場所を選択します。 オペレーティング システム オペレーティング システム Windows ホスティング ホスティング オプションとプラン 従量課金プラン (サーバーレス) 無料のサンドボックスを使用すると、Azure グローバル リージョンのサブセットにリソースを作成できます。 リソースを作成するときは、次のリストからリージョンを選択します。
- 米国西部 2
- 米国中南部
- 米国中部
- 米国東部
- 西ヨーロッパ
- 東南アジア
- 東日本
- ブラジル南部
- オーストラリア南東部
- インド中部
[次へ: ストレージ] を選択して、[ストレージ] タブを開きます。各設定に対して次の値を入力します。
設定 [値] Storage ストレージ アカウント (新規) で、既定の名前のままとします。 [Review + create](レビュー + 作成) を選択します。
Azure によってエントリが検証されます。 検証が終了したら、[作成] を選択します。
Webhook でトリガーされる関数を作成する
デプロイが完了したら、[リソースに移動] を選択します。 "関数アプリ" の [概要] ペインが表示されます。
[関数] で、[Azure portal で作成] を選択します。
[関数の作成] ペインが表示されます。
[テンプレートの選択] で [HTTP トリガー] を選択し、[作成] を選択します。 "関数" の [HttpTrigger1] ペインが開き、新しいトリガーの要点が表示されます。
左側のメニュー ウィンドウの [開発者] で、[コードとテスト] を選択します。 "関数" の [コードとテスト] ペインが開き、テンプレートから作成された 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" メッセージが返されます。
コードの上には、ファイル名を示すドロップダウン リストを含むパスがあります。 ドロップダウン リストから [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 要求によって関数がトリガーされるように指定します。
関数のトリガーをテストする
上部のメニュー バーで [関数の URL の取得] を選択します。
[関数の URL の取得] ダイアログ ボックスの [キー] ドロップダウン リストで、[関数キー] の下にある [既定値] を選択します。 [URL] フィールドで、[クリップボードにコピー] アイコンを選択します。 URL は次のようになります。
https://<your-functionapp-name>.azurewebsites.net/api/HttpTrigger1?code=aUjXIpqdJ0ZHPQuB0SzFegxGJu0nAXmsQBnmkCpJ6RYxleRaoxJ8cQ==
この URL をブラウザーに貼り付け、URL の末尾にクエリ文字列パラメーターを追加します: &name=<yourname>。たとえば、&name=Dick および Jane。
要求を実行するには、Enter キーを押します。 関数から返された応答がブラウザーに表示されます。 これは次のように表示されます。
Hello Dick and Jane. This HTTP triggered function executed successfully.
お疲れさまでした。 これで、URL でトリガーできる関数が作成されました。