Microsoftは先日のブログ記事で、Azure Functions Proxiesのパブリックプレビュー版を発表した。この機能は、多数のAzure Function Appを公開する上で、プロビジョニングされるFunction Appの場所や数に関わらない共通エンドポイントを用意したいと考えている企業に、リバースプロキシの機能を提供するものだ。
MicrosoftのプログラムマネージャであるMathew Henderson氏が、Azure Function Proxiesが解決する課題について次のように説明している。
Azure Functionsを最初にリリースして以来、多くのユーザがこのサービスを使ってAPIを構築しています。Functionはアクションを手軽に表現する素晴らしい方法です。また、Consumption Planは多くのタイプのアプリケーションにとって優れた課金モデルです。その一方で、複数のFunctionをもっと簡単に扱う方法はないか、という声も耳にしています。大規模なソリューションを1つのFunctionアプリで管理するのは、困難を伴うことが多くあります。また、個々のコンポーネントを分離してデプロイする、マイクロサービスアーキテクチャを採用しているユーザも少なくありません。複数のFunctionアプリと処理を分割するは大部分のトリガで機能しますが、APIはやや難解になります。
Azure Function Proxiesは、数多くのAPIあるいはマイクロサービスを持った開発者の抱える問題に対処する。その一部として挙げられるのは、Azure Function Appが独自のホスト名を持っていることと、Azure Functionsが複数のリージョンにホストされる可能性のあることだ。この複雑なURL管理がAPIユーザの責任になっていることが、問題の原因となっている。Azure Function Proxiesでは、開発者がリバースプロキシエンドポイントを公開して、ベースにあるAPIを抽象化することができる。抽象化可能なAPIは、他のFunction AppやAPI、Azure API App、他のHTTPエンドポイントなどだ。
同じUIの内部に、Azure Function ProxyをFunction Appとして作成することもできる。そのコンフィギュレーション内では、ルートテンプレート、許可するHTTPメソッド、HTTP要求をルーティングするバックエンドURLなどを指定するように求められる。バックエンドURLは静的である必要はなく、要求のコンテンツあるいはアプリケーションの設定に基づいて動的に設定することも可能だ。
イメージ引用元: https://blogs.msdn.microsoft.com/appserviceteam/2017/02/22/azure-functions-proxies-public-preview/
BitBucketやDropbox、GitHub、Visual Studio Team Servicesなどの継続的デリバリを用いてFunction Appをプロビジョニングする場合、Azure Function Proxiesが有効になっていれば、同じ手順でAzure Functions Proxiesをデプロイすることも可能だ。Azure Function Proxiesのすべての情報は、Functions Appディレクトリのルートにあるproxies.jsonというファイルに格納される。
Azure Function Proxiesは、プレビュー版の間は無償である。プロキシの実行には標準的な課金が適用される。詳細はAzure Functionsの価格のページを参照して欲しい。
この記事を評価
- 編集者評
- 編集長アクション