こんばんは。本日は、Azure Functionsにプロキシを設定する手順の備忘です。
Azure Functionsを複数運用している状況の元で、Proxyを設定することで、Azure Functionsへのアクセス制御、統一されたURL規則をユーザに提供することができます。
Contents
Azure Functions Proxyの作成方法
Azure Functionsを作成している前提とします。
Azure Functionsのプロキシは、Azure Functionsのプロキシ Bladeから簡単に作成することができます。
上の画面で追加を押すと、プロキシの設定画面が開きます。
ここで、
- ルートテンプレート:なぜこのような呼び方をするか分かりませんが、これがProxyのURLになります。
(例:”proxy”とすると、Functions AppのURL/proxyが接続URLになります) - 許可されているHTTP メソッド:ここで、GET/POSTなどの、メソッドの制限を加えられます。
- バックエンドURL:Proxyから転送する先のURLです。公式ドキュメントによると、バックエンドURLには、Azure FunctionsのURLでも良いし、外部サイトでも良いようです。
[実験] Azure Functions Proxyを経由したFunctionsの呼び出し
今回は、とてもシンプルな構成でAzure Functions Proxyの動作を確認してみたいと思います。
通信経路:(Client) → (Azure Functions Proxy) → (1つのAzure Functions)
関数の作成
はじめに、ProxyのバックエンドURLとして指定する、HTTPトリガーで起動する関数を作成します。
関数アプリ>関数>追加>HTTP Triggerから作成可能です。(名前は任意)
作成した関数のURLをバックエンドURLに指定
最初のステップで作成した関数のURLを取得します。
続けて、先ほど紹介した手順でAzure Functions Proxyを作成します。
このとき、バックエンドURLに先ほど作成した関数のURLを指定します。
疎通確認
ブラウザを立ち上げて、プロキシのURLを入力します。
すると、先ほど作成した関数のURLが呼び出されて、関数の実行結果が表示されました!
このように、非常に簡単にプロキシを設定することができました。
Azure Functions Proxyのログをトレースする
Proxyが正しく動作していない場合などは、Functions Proxyのログをトレースすると有効な情報が得られるかもしれません。実は、Azure Functions Proxyのログはデフォルトでは有効化されていません。
ここでは、ログ出力を有効化する方法と、そのログを確認する方法を紹介します。
proxy.jsonに”debug”: true設定を追加する
プロキシの”詳細エディター”をクリックすることで、proxy.jsonファイルの編集画面に遷移します。
proxy.jsonファイルは、プロキシを作成した時点で、wwwrootフォルダ直下に作成されます。このファイルに、下記のように”debug”: true設定を追加します。(SampleProxy2の設定は無視してください)
この設定後、一度ProxyのURLをブラウザからたたいて、ログを出力させます。
ログは、以下の”高度なツール”ブレードから、参照できます。
ログは、D:\home\LogFiles\Application\Proxies\DetailedTrace配下に出力されていきます。
中身はこんな感じ。Proxyに入ってきたHTTPリクエストの内容、バックエンドURLに転送されたHTTPリクエストの内容を参照することができます。
以上、Azure Functionsでプロキシを設定する手順の備忘でした!
本日も最後まで御覧いただきありがとうございました!
コメントを残す