記事公開日
最終更新日
Power Platformを使った運用保守業務の効率化について考えてみた

こんにちは、システムソリューション営業本部の吾妻です。
Power AppsやPower Automate(旧称: Microsoft Flow)といったノンコード・ローコード開発のための製品が、一般企業向けにアプリケーション開発にも利用されるようになってきました。こうしたツールは、システム開発のプロセスでいうと、設計フェーズで要件を煮詰めたり、開発フェーズで実運用のためのアプリケーションを実装するために利用されることがほとんどです。
しかし、業務効率化のためには他の工程にも目を向けてみる必要があるのではないでしょうか。
この記事では、必要性の割に工数を割くことができない運用・保守フェーズに着目して、Power AutomateをはじめとしたPower Platform製品群を活用するための方法を考えてみたいと思います。
運用・保守フェーズにおいて、自動化が比較的容易で、結果(削減された工数)も見えやすい作業として、以下のようなものが考えられます。
- システム監視
- ヘルプデスク(チャットボット)
- ライセンス管理 ...
今回は、システム監視の中でも、Webサービスが正常に動作しているかを確認するための「外形監視」のツールを、Power Automateで実装し、集計結果を可視化するダッシュボードをPower BIで実装することで、業務改善を図りたいと思います。
外形監視とは、Webサービスの利用者がブラウザを使ってアクセスするのと同じように、運用担当者がWebサービスにアクセスして正常に動作しているかを確認する監視方法です。手作業で行われることが多い外形監視ですが、機械的にアクセスして、結果を判定する程度であれば、簡単に自動化することができます。
Webサービスの監視を自動化するというと、Seleniumを組み込んだプログラムによるものを連想される方も多いかと思いますが、以下のような理由から、Power Platformを利用した方がよりスムーズに実現することができます。
- 事前の環境構築の手間を省くことができる
- ソースコードを記述してプログラムを実装する必要がない
- データベースやストレージとして利用できる領域がマネージドで予め用意されている
- 最終的に結果を可視化するためのダッシュボード作成まで、まとめて実装できる
今回作成するフローとExcelブックのサンプルをこちらにご用意しました。ぜひ、お手元の環境で試行していただき、雰囲気を掴んでいただければと思います。
0. 事前準備
まず、以下の製品のライセンスを用意します。それぞれの製品に試用版が用意されているので、とりあえず試したい場合はそちらを利用するのも手です。
- Microsoft 365 ( Excel Online, Teams )
- Power Automate ( per flow plan / per user plan )
- Office 365 用 Power Apps / Power Automate だと、プレミアムコネクタを利用できないので、Automate単体のライセンスが必要になります。(今回作成するフローで使用するコネクタのうち、HTTPアクションがプレミアムコネクタに分類されています)
- Power BI
- 社内の人と共有したい場合はPro版が必要になります
1. Teams での操作
1.1. チームを作成
アラート通知先兼ファイル置き場として Teams のチームを作成します。
1.2. 入出力ファイルを作成
チームのファイルタブを開き、新規ボタンをクリックして、以下の Excel(Excel Online)ブックを作成します。
input.xlsx
: 監視対象のWebサービスのURLと、正常動作していたらページのソースに含まれるはずの文字列を指定しますresult.xlsx
: 監視結果を書き出して、集計に使用します

それぞれのファイルには以下のようなテーブルを含めます。Excel の「テーブルとして書式設定」を利用したテーブルになっていないと、Power Automate のアクションで選択肢に表示されないので注意してください。
input.xlsx
(今回は監視対象のWebページとして、HTTP通信のデモ用サイトとして有名な、httpbin.orgを利用させてもらいます)
url | body |
---|---|
http://httpbin.org/html | <div> |
http://httpbin.org/json | slides |
http://httpbin.org/status/500 | <div> |

result.xlsx
(Automateで行を追記していくので、とりあえず見出し行だけ用意します)
datetime | url | statuscode | content |
---|---|---|---|
2. Power Automate での操作
2.1. フローを作成
スケジュール ― 一から作成
メニューからフローを作成します。
実行間隔は、 10分
としておきますが、必要に応じて変更してください。
2.2. フローを組み立て
2.2.1. アクションを追加
「予定フローを作成」画面で「作成」ボタンをクリックすると、フローにアクションを追加するための画面が表示されます。
ここで、「アクションを追加」ボタンをクリックして、以下の様なアクション(動作を表すパーツ)を追加していきます。
アクションをすべて追加すると、こちらの画像のようなフローが出来上がるかと思います。アクションの設定でわかりにくい箇所については、サンプルをこちらにご用意していますので、Power Automateのインポート画面からインポートしてご確認ください。
- 変数を初期化する
result
(ブール値;初期値はtrue
)start_time
(整数)exec_time
(整数)
- 表内に存在する行を一覧表示(Excel Online Business)
input.xlsx
のテーブルを選択
- Apply to each(表内に存在する行ごとに繰り返し処理)
- 以前の手順から出力を選択:
value
(Excel Online アイコン) - 変数
start_time
に現在日時を求める数式ticks(utcNow())
を設定 - Excel の url 列に書かれた URL へアクセスする HTTP アクション
- 変数
exec_time
に、経過時間を求める数式sub(ticks(utcNow()), variables('start_time'))
を設定 - 表に行を追加(Excel Online Business)
result.xlsx
のテーブルを選択- 以下の各列に結果を書き出す
datetime
: 変数start_time
url
:url
statuscode
:if(not(empty(string(outputs('HTTP')?['statusCode']))), outputs('HTTP')?['statusCode'], 500)
content
: 本文(HTTP アクション)
- 条件
- ステータスコードを int 型にキャストしたものが 300 以上ならば、Teams にエラーメッセージを投稿し、変数
result
にfalse
を設定 - ステータスコードが 300 未満で、HTTP アクションの戻り値に、期待した文字列が含まれていなかったら、Teams にエラーメッセージを投稿し、変数
result
にfalse
を設定
- ステータスコードを int 型にキャストしたものが 300 以上ならば、Teams にエラーメッセージを投稿し、変数
- 以前の手順から出力を選択:
- 条件
- 変数
result
がtrue
ならば、エラーが 1 件もないので Teams に成功メッセージを投稿
- 変数
2.2.1. 実行条件の構成
Power Automateのデフォルト設定だと、HTTP アクションで URL 呼び出し自体でエラーが生じた場合に、フローもエラーとなり実行中断してしまいます。ここでは、URL 呼び出しがエラーになった場合もステータスコードなどを拾いたいため、実行中断しない様に設定する必要があります。
HTTP アクションの直後のアクション( 今回は 変数の設定 2
)で「実行条件の構成」を開いて、全部のチェックボックスを有効化します。


2.3. 動作確認
フローをテスト実行し、「ご利用のフローが正常に実行されました。」と表示されることと、Teamsにメッセージが投稿されていることを確認します。


3. Power BI での操作
Power BI では、Power Automateで書き出した先のExcelファイル result.xlsx
を読み込んで可視化を行います。詳細な作成手順は割愛しますが、簡単なダッシュボードのサンプルを載せますので、みなさんもパズル感覚で試してみてください。Power BIの簡単な使用方法については、本ブログのPower BIカテゴリ でご紹介しています。

まとめ
この記事では、業務効率化のために、運用・保守フェーズに着目して、Power Platform製品群を活用するための方法をご紹介しました。みなさんの働き方改革に役立てていただければ幸いです。
本記事ではご紹介できませんでしたが、SeleniumをPower AutomateのUIフローに組み込んで使用することも可能です。あるいは、Power BIで集計結果を可視化するだけでなく、Azure Machine Learningのような機械学習サービスに入力して、より細かな分析を行うこともできるかもしれません。
本ブログでは、Azure Machine Learningに関する連載も公開していますので、これらについても近いうちにご紹介できればと思います。
弊社QESでは、Power Platformの導入・開発支援や、トレーニングなど、幅広いサービスをご提供しています。気になるソリューションがありましたら、お気軽にお問合せください。
※このブログで参照されている、Microsoft、Windows、PowerPlatform、その他のマイクロソフト製品およびサービスは、米国およびその他の国におけるマイクロソフトの商標または登録商標です。