Apache APISIX の API を Power Platform に公開する
February 27, 2023
Apache APISIX API Gatewayを使用すると、プロの開発者はバックエンドサービスをAPIとして公開し、その使用状況を監視し、これらのAPIをPower Platform(Power AppsおよびPower Automate)にカスタムコネクタとして公開して、API Gatewayエンドポイントをカスタムアプリに統合することができます。これにより、ゼロからコードを書く必要なく、API Gatewayエンドポイントをカスタムアプリに統合できます。
この記事では、Power PlatformでオープンソースのApache APISIX API Gatewayのカスタムコネクタを作成する方法を紹介します。これは、既存のシステムに使用可能なAPIを持つ追加コンポーネントを構築している場合や、システムのインフラストラクチャがオンプレミスや他のクラウドサービスプロバイダーでホストされている場合に、Azure API Managementの代替として利用できます。
学習目標
この記事を通じて、以下のことを学びます:
- Power AppsとApache APISIXを統合する利点。
- カスタムコネクタとは何か?
- Power PlatformでApache APISIX API Gatewayの新しいカスタムコネクタを設定する方法。
- 新しいカスタムコネクタを使用するCanvas Mobile AppをPowerAppsで作成する方法。
Power AppsとApache APISIXを統合する利点
Power AppsとApache APISIXを統合することで、組織にいくつかの利点がもたらされます。Power AppsはAPI Gatewayを介してAPIにアクセスでき、APISIXで追加の設定を構成できます。
以下にそのいくつかを紹介します:
-
セキュリティの強化: バックエンドシステムへの大量のリクエストによる予期せぬエラーを防ぐための「高度なリクエストスロットリング」を提供し、バックエンドAPIのレートリミットポリシー、認証、暗号化を設定できます。これらはカスタムアプリケーションに適用可能です。
-
スケーラビリティ: 高いトラフィック量を処理し、需要に応じてスケールアップまたはダウンできます。これにより、Power Apps上に構築されたカスタムアプリケーションは、ビジネスの成長に伴って増加するトラフィック量を処理できます。
-
パフォーマンス: ロードバランシングやキャッシュなどの機能を提供し、Power Apps上に構築されたカスタムアプリケーションのパフォーマンスを向上させることができます。
カスタムコネクタとは?
Power Appsのカスタムコネクタは、アプリと外部データソースまたはAPIとの接続を作成するためのツールです。この場合、外部システムはApache APISIXです。カスタムコネクタを使用すると、ユーザーは複雑なコードを書いたり、複雑な設定を行わずに、アプリ内で外部システムのデータやサービスにアクセスできます。
カスタムコネクタは、外部システムのAPIエンドポイント、メソッド、認証要件、必要なパラメータ、レスポンス形式を定義することで作成されます。カスタムコネクタが作成され、認証されると、Power Appsでデータの取得、レコードの作成、更新、削除などの操作を実行するために使用できます。
新しいカスタムコネクタの設定
Apache APISIXのカスタムコネクタを設定する例を見てみましょう。
デモケースでは、ASP.NET Core WEB APIで構築されたサンプルプロジェクトと、単一のGET
エンドポイント(すべての製品リストを取得)を持つApache APISIX Dockerサンプルプロジェクトを利用します。サンプルアプリの実行方法については、READMEファイルにすべての手順が記載されています。
前提条件
- 基本的なAPIの概念に精通している必要があります。
- APISIXのコア概念(Route、Upstream、Plugin)についての基本的な知識が必要です。
- APISIXを実行するために、マシンにDockerがインストールされている必要があります。
docker compose
を使用してAPISIXと製品バックエンドAPIをインストールします。- APIエンドポイント、アップストリーム、ルーティングルールなどの必要な設定を構成します。このチュートリアルに従ってAPISIX API Gatewayを設定できます。RouteとUpstreamを作成し、APISIXがリクエストをターゲットAPI
/api/products
に転送することを確認してください。 - この演習には_Power Apps Premiumコネクタ_へのアクセスが必要です。無料のDeveloper Planにサインアップしてください。
ステップ1: カスタムコネクタウィザードを開始する
まず、Power Appsポータルにログインし、「Connectors」セクションに移動します。「New custom connector」ボタンをクリックし、「Create new from blank」を選択して、新しいコネクタに名前を付けます。
ステップ2: コネクタの基本情報を入力する
「General」タブで、コネクタの以下の詳細を入力します:
- コネクタ名: コネクタに名前を付けます(例:「APISIX API Gateway」)。
- 説明: コネクタの簡単な説明を入力します。
- スキーム: 正しいスキームを選択します。この例では、APIがHTTPSを使用するように設定されていないため、HTTPを使用します。
- 「Connect via on-premises data gateway」オプションにチェックを入れます。ネットワーク内のマシンにオンプレミスデータゲートウェイをインストールする必要があります。カスタムコネクタは、オンプレミスデータゲートウェイを使用せずにlocalhostをホスト名として使用できません。
- ベースURL: Apache APISIX API GatewayのベースURLを入力します(例:
http://localhost:9080
)。
ステップ3: 認証タイプを選択する
次に、「Security」タブに切り替え、カスタムコネクタが使用する認証タイプに基づいて必要な認証情報を入力します。例えば、Basic、OAuth2、またはAPI Keyです。
ステップ4: APIエンドポイントを定義する
「Definition」タブで、カスタムコネクタに公開するAPIエンドポイントを定義できます。例えば、API Gatewayからすべての製品リストを取得するエンドポイントを定義できます。
エンドポイントを定義するには、以下の手順に従います:
- 名前: エンドポイントに名前を付けます(例:「Get Product List」)。
- 概要: エンドポイントの機能について簡単な概要を入力します。
- 操作ID: エンドポイントの一意の操作IDを入力します(例:「GetProducts」)。
- メソッド: エンドポイントが使用するHTTPメソッドを選択します(例:GET)。
- URL: エンドポイントのAPIエンドポイントURLを入力します(例:
/api/products
)。 - リクエスト: エンドポイントに必要なリクエストパラメータとヘッダーを指定します。
- レスポンス: エンドポイントが返すレスポンススキーマを指定します。
必要な数のエンドポイントを定義できます。
ステップ5: カスタムコネクタをテストする
エンドポイントを定義したら、「Test」タブをクリックしてカスタムコネクタをテストできます。ここで、リクエストのサンプルデータを入力し、API Gatewayが返すレスポンスを確認できます。
ステップ6: カスタムコネクタを保存する
すべてのエンドポイントを定義し、コネクタをテストしたら、「Create connector」ボタンをクリックして変更を保存します。
Apache APISIX API GatewayのカスタムコネクタがPower Appsで使用できるようになりました。次のセクションで、API Gatewayエンドポイントとやり取りするカスタムアプリを構築するために使用できます。
新しいPower Appを作成する
次に、前のセクションで作成したカスタムコネクタを使用して、APISIX API Gatewayエンドポイントから製品リストを取得する単一ページのモバイルアプリを作成します。
ステップ1: 製品用の新しいアプリを作成する
まず、Power Appsポータルにログインし、「Create an app」を選択して新しいアプリを作成します。「Phone layout」オプションを選択してモバイルアプリを作成し、アプリに名前を付けます。
ステップ2: データソースを追加する
「Data」タブで、Apache APISIX API Gatewayカスタムコネクタをデータソースとして追加します。これにより、アプリはカスタムコネクタで定義されたAPI Gatewayエンドポイントとやり取りできるようになります。
ステップ3: ユーザーインターフェースを設計する
「Canvas」タブで、アプリのユーザーインターフェースを設計します。ボタン、ラベル、ギャラリー、フォームなどのUIコントロールを追加して、ユーザーフレンドリーでインタラクティブなインターフェースを作成できます。この例では、製品名と価格を含む製品リストを表示します。
ステップ4: アクションとロジックを定義する
「Action」タブで、ユーザーがUIコントロールを操作したときにアプリが実行するアクションを定義します。例えば、API Gatewayからすべての製品を取得し、ギャラリーに表示し、検索機能を追加するアクションを定義できます。
ステップ5: アプリをテストする
アプリのアクションとロジックを定義したら、「Preview」ボタンをクリックしてテストできます。ここで、UIコントロールを操作し、API Gatewayから取得したデータを確認できます。
ステップ6: アプリを公開する
アプリをテストしたら、公開してユーザーが利用できるようにします。アプリをiOS、Android、Windowsなどのさまざまなプラットフォームに公開できます。
次のステップ
この記事では、APIを記述し、Apache APISIXカスタムコネクタを定義する方法を学びました。また、API Gatewayとそのカスタムコネクタを使用するPower Appsでモバイルアプリを作成しました。カスタムコネクタは、Microsoftが管理するコネクタと同じ方法で使用されます。つまり、Logic AppやPower Automateでもコネクタを活用できます。ぜひ試してみて、Power PlatformとApache APISIXでどれだけのことができるかを確認してください。