前回は、Power AutomateとWeb APIがシステムの自動化や情報収集の効率化において重要な要素だと解説した。今回は一歩踏み込み、Web APIを使ったシステム連携の基礎を解説する。
前回は、システム連携を考える上でCSVと一般的なRPA(Robotic Process Automation)ツールの問題点、それを「Microsoft Power Automate」と「Web API」の組み合わせによって解消できるとお話ししました。
2回目となる本稿では、Power AutomateとWeb APIを使ったシステム連携について、例を挙げながら、より具体的に説明します(今回はWeb APIの活用のみに焦点を当てるため、JSONの解析、作成などについては省略します)。
2011年、内田洋行ITソリューションズに入社。システム開発本部 ATD 技術推進課所属。「Microsoft Graph」を用いた社内システムの改善や、「Microsoft Azure」のPaaSを活用した各種ソリューションの設計、構築、開発を担当する。主な役割は、新技術の検証や新規サービスの開発、Azure導入のサポートなど。「Microsoft MVP Office Development」「Microsoft Certified Azure Developer Associate」「Certified ScrumMaster」「JDLA Deep Learning for GENERAL 2019#2」「MCSA: Web Applications」「MCSD: App Builder」を受賞。
API(Application Programming Interface)とは、簡単に言えば外部のアプリケーションなどと連携させるための仕組みです。API連携によって、機能拡張やデータの共有が容易になります。APIが公開されていれば、インターネットを通じてさまざまなAPIを利用できます。そうしたAPIを「Web API」と言います。
Power Automateで用意されているWeb APIと通信可能で一番容易に利用できる機能はHTTPアクションです。認証方法は以下のものがサポートされています。
認証の必要がないWeb APIや、APIキーなど簡易的な認証で保護されているWeb API、「Microsoft Azure Active Directory」で保護されたWeb APIからデータを取得したい場合に重宝します。
HTTPアクションでWeb APIから簡単に外部アプリケーションとやりとりできることが分かりました。
しかし、現在、Web APIを公開しているサービスは単一の機能のみを提供するWeb APIは少なく、複数の機能を提供するものがほとんどです。「サービスごとにWeb APIの機能郡を一つにまとめたい」「独自のOAuthで認証するサービスへリクエストするたびに認証フローを作成するのは煩わしい」という場合に有効なのが、「カスタムコネクター」です。
カスタムコネクターについて、Microsoftが公開しているドキュメント(※1)には、以下のような記述があります。
Azure Logic Apps、Microsoft Power AutomateおよびMicrosoft Power Apps は Microsoft および Microsoft 以外のサービスに接続するために 325+コネクター以上のコネクターを提供していますが、あらかじめ構築されているコネクターが利用できないサービスとの通信が必要になることもあります。 カスタム コネクターでは、独自のトリガーとアクションを備えたコネクターを作成(さらには共有)できるようにすることで、このシナリオに対応しています。
つまりカスタムコネクターは、Web APIは公開されているが、Power Platformにコネクターが存在しないサービスとの通信が必要な場合に有効だということです。
今回はWeb APIを用いたフロー(上図参照)で使用するカスタムコネクターの設定を想定し、「Money Forward」を例に、カスタムコネクターの使い方を説明します。
まずは、カスタムコネクターの新規作成からです。「Azure Functions」や「Azure Logic Apps」といったサービス、OpenAPIや「Postmanコレクション」など、さまざまな方法で作成できます。以下のテーブルはカスタムコネクターの作成方法の一覧です。開発者としての視点でどのような作成手法を優先して使用するかを記載しています。
作成手法 | 視点 | |
---|---|---|
1 | URLからOpenAPIをインポート | OpenAPI(Swagger)でパブリックに仕様が公開されている場合 |
2 | Azureサービスから作成する | Azure Functions、API Management、Logic App等で自前のサービスを公開しているとき |
3 | OpenAPIファイルをインポートする | URLからインポートできない状態で、OpenAPI(Swagger)のJSONやYamlが取得できる場合 |
4 | Postmanコレクション | Postmanコレクションが公開されている場合 |
5 | イチから作成 | 上記以外/テストで取りあえずWebAPIを触って見たいとき/インポートで対処不能なエラーが発生したとき |
次にセキュリティの設定です。Money Forwardの場合は、オープンな認証、認可の仕様である「OAuth2.0」を使用します。Money Forwardから提供されるクライアントIDとシークレット、スコープを使用して保護されたデータを取得できるように設定できます。
Authorization URLやToken URLは各サービスのドキュメントで説明されています。大抵は「APIエンドポイント/oauth/authorize」や「APIエンドポイント/oauth/token」といったURLを指定します。
Web APIには「リクエスト」と「レスポンス」があります。簡単に言えば、リクエストとは外部サーバへ要求する内容、レスポンスはサーバから受け取る内容です。Power AutomateのWeb API連携では、リクエストとレスポンスの形式を設定する必要があります。
設定において、OpenAPIの定義ファイルからインポートする方法が簡単ですが、Power Automateの「Swagger」エディタを使用して自前で設定することも可能です。他には下図のように、実際の通信のサンプルからインポートして設定をすることもできます。定義ファイルやサンプルからインポートする時に失敗することもまれにありますが、Swaggerエディタを使えば簡単にリカバリー可能なことも多いので、Open API定義ファイルの構成の仕方については覚えておいて損はないと思います。
Open APIの定義ファイルのインポートではなく、リクエストやレスポンスをゼロの状態から作る場合は、Web APIがどのようなリクエストやレスポンスの通信を行っているかを理解することが重要です、通信の内容を理解するためには、Web API公開元のSwaggerや「Postman」といったツールを使用して実際の通信の中身を把握するのが一番理解しやすいです。
設定したカスタムコネクターはフロー作成時に「カスタム」に表示されます。
カスタムコネクターで設定したアクションやリクエストで設定した引数、レスポンスで設定した返却値が簡単な形で利用できます。
これらの機能はパブリックな環境だけではなく、オンプレミスデータゲートウェイを使うことで、オンプレミス環境にあるWeb APIとも接続が可能になります。
オンプレミスデータゲートウェイについて、Microsoftが公開するドキュメント(※2)に以下のような説明があります。
オンプレミス データ ゲートウェイは橋渡しとしての役割を果たします。クラウド内に存在しないオンプレミス データといくつかの Microsoft クラウド サービスとの間で迅速かつ安全なデータ転送を行います。 これらのサービスには、Power BI、Power Apps、Power Automate、Azure Analysis ServicesおよびAzure Logic Apps が含まれています。
オンプレミスデータゲートウェイとは、オンプレミスのデータにアクセスするための橋渡しとなるソフトウェアです。今回はPower Automateでのみ使用しますが、Power Appsをはじめとしたさまざまな製品でも利用することが可能です。
オンプレミス内に有用な情報が眠っていて、他のアプリケーションのデータと組み合わせたい場合に有用です。
オンプレミスデータゲートウェイはオンプレミスのハードウェアにインストールするソフトウェアのため、インストーラを手に入れる必要があります。こちらのページからダウンロードが可能です。
ダウンロードページには最小要件と推奨要件の記述があります。あくまで推奨ですので、ひとまずインストールをして様子を見てみてもいいかもしれません。
オンプレミスゲートウェイをインストールしてソフトウェアを立ち上げると、Microsoftの組織アカウントによるサインインが求められます。Power Automateで開発するアカウントでサインインをする必要があります。
オンプレミスデータゲートウェイの接続には「HTTPS」が推奨され、デフォルトではHTTPSが使用されます。ファイアウォールなどでHTTPSポートがブロックされている場合は使用できるようにしておきましょう。Webへのアクセスにプロキシを介している場合は、特殊な設定が必要です(※3)。
Power Automateのポータルの「ゲートウェイ」で認識できたら使用可能な状態となります。
カスタムコネクターの設定で「オンプレミスデータゲートウェイ経由で接続」にチェックをすることで使用できます。
今回は、Web API連携に必要なHTTP通信やカスタムコネクター、オンプレミスデータゲートウェイを用いたパブリック、またはオンプレミスのWeb APIとやりとりをする方法を説明しました。
次回は、Power Automateを使うにはどのWeb APIが使いやすいのか、運用しやすい構成や体制について解説します。
Copyright © ITmedia, Inc. All Rights Reserved.
製品カタログや技術資料、導入事例など、IT導入の課題解決に役立つ資料を簡単に入手できます。