API Management で関数アプリから新しい API を作成する
Azure API Management サービスを使用すると、一連の異なるマイクロサービスから API を構築できます。
オンライン ストアでは、アプリケーションの各部分はマイクロサービスとして (1 つは製品詳細用、1 つは注文詳細用、というように) 実装されます。 個別のチームが各マイクロサービスを管理し、各チームが継続的な開発とデリバリーを使用して、定期的にコードを更新およびデプロイします。 あなたは、これらのマイクロサービスを 1 つの製品にまとめ、その製品を一元的に管理する方法を見つけたいと考えています。
このユニットでは、個々のマイクロサービスから 1 つの API を構築することで、Azure API Management がサーバーレス アーキテクチャでどのように役立つかを学習します。
サーバーレス アーキテクチャとマイクロサービス
マイクロサービスは、分散アプリケーションのアーキテクチャによく使用されるアプローチです。 マイクロサービスのコレクションとしてアプリケーションを構築する場合は、さまざまな小規模のサービスを作成します。 各サービスには定義済みの責任ドメインがあり、開発、デプロイ、およびスケールが個別に行われます。 このモジュール型のアーキテクチャによって、理解、改善、およびテストが簡単なアプリケーションになります。 また、マイクロサービスをデプロイするときに、アプリケーション全体のごく一部のみを変更するため、継続的デリバリーも簡単になります。
分散型ソフトウェア開発においてこれに並ぶもう 1 つのトレンドは、サーバーレス アーキテクチャです。 このアプローチで、ホスト組織は、開発者がコードを実行するために使用できる一連のサービスを発行します。 開発者は、サポートするハードウェア、オペレーティング システム、基となるソフトウェア、およびその他のインフラストラクチャについて心配する必要がありません。 代わりに、要求によってトリガーされるステートレス コンピューティング リソースでコードが実行されます。 コストは、サービスが実行された場合にのみ発生します。そのため、ほとんど使用されないサービスにはあまり料金がかかりません。
Azure Functions
Azure Functions は、Azure でサーバーレス アーキテクチャを可能にするサービスです。 C#、Java、JavaScript、PowerShell、Python など、さまざまな言語で、サポートするインフラストラクチャを気にせずに関数を作成できます。 また、NuGet と Node Package Manager (npm) のライブラリを使用し、Active Directory、Facebook、Google、Microsoft アカウントなどのプロバイダーの OAuth 標準を使用してユーザーを認証することもできます。
関数を作成するときは、コードのトリガー方法に応じて、使用するテンプレートを選択します。 たとえば、HTTP 要求に応答して関数を実行する場合は、HTTPTrigger テンプレートを使用します。 他のテンプレートを使用して、キュー、BLOB ストレージ コンテナー、または定義済みスケジュールに新しいメッセージがあるときに実行できます。
従量課金プランで Azure Functions を使用する場合、コードの実行時間に対してのみ課金されます。
Azure API Management
Azure API Management は、API の発行、セキュリティ保護、変換、保守、および監視に使用できるフル マネージド クラウド サービスです。 組織にとっての利点は、外部のパートナーや社内の開発者に API を公開することによって、社内に眠っているデータやサービスの可能性を発掘できることです。 API Management は、API 呼び出しの仲介に関連するすべてのタスクを処理します。 これには、要求の認証と認可、レート制限とクォータの適用、要求と応答の変換、ログとトレース、API バージョン管理などが含まれます。 API Management を使用すると、ホストされている場所に関係なく、既存のバックエンド サービスの最新の API ゲートウェイを作成および管理できます。
Azure Functions は API Management 経由で発行できるため、それを使用してマイクロサービス アーキテクチャを実装できます。各関数には、マイクロサービスが実装されています。 1 つの API Management 製品に複数の関数を追加することで、これらのマイクロサービスを、統合された分散アプリケーションに組み込むことができます。 アプリケーションがビルドされたら、API Management ポリシーを使用してキャッシュを実装したり、セキュリティ要件を確認したりすることができます。
API Management の従量課金レベル
API Management の使用プランを選択する際に、従量課金レベルを選択できます。 従量課金レベルは、マイクロサービス ベースのアーキテクチャとイベント ドリブン システムに特に適しています。 たとえば、オンライン ストア Web API の場合に適しています。
従量課金レベルは、前のレベルと同じ基のサービス コンポーネントを使用しますが、動的に割り当てられた共有リソースに基づいてまったく異なるアーキテクチャを採用しています。 従量課金レベルは、サーバーレス コンピューティング モデルと完全に整合しています。 管理すべきインフラストラクチャもアイドル容量もありません。 高可用性、自動スケーリング、使用量ベースの価格が提供されます。 これらすべてにより、従量課金レベルは、サーバーレス リソースを API として公開することに関連するソリューションにとって特に適した選択肢となっています。
次のユニットでは、API Management インスタンスを作成し、そのインスタンスに関数を追加します。