AzureAutomationという仕組みをご存じでしょうか。
Azure上でPythonやPowerShellを実行することができるサービスであり、自分のパソコンを使わずにコードを実行させることができます。
日々の作業の自動化・効率化に大いに役立ちそうな気がします。
今回は、PowerAutomateからAzureAutomationを使う具体例を紹介します。
初めてやる人には参考になると思います。
Azure Automaionとは
クラウド上で処理を自動化するサービスです。
公式のページを見るといろいろなことができそうです。
今回は、具体例を紹介したいのでかなり限定した使い方となりますが・・
「PowerAutomateからPowerShellを実行する」ことができます。
実際にやったこと
今回行ったことは、実際の運用の一つであるExchangeメールボックスの使用量のチェックです。
Exchangeのアーカイブ領域には1.5TBの容量上限があるので、それにかからないように使用量をPowerShellコマンドでチェックしています。
PowerShellの実行を自分のパソコンからではなく、PowerAutomate+AzureAutomationで自動実行させてみました。
【流れ】
チェックしたいメールアドレスのリスト(Excelファイル)
↓
PowerAutomateでリスト読み込み
↓
AzureAutomationにリストを引き渡し
↓
AzureAutomationでPowerShell実行
↓
PowerAutomateにPowerShellの実行結果を引き渡し
↓
PowerAutomateでcsv化
設定内容
設定の肝は、PowerAutomateとAzureAutomationのデータ引き渡し部分です。
AzureAutomation側でRunBookを作成
AzureAutomation上に、RunBookというPowerShellプログラム実行の処理を作ります。
【プログラム内容】
ポイントは2つです。
まず、PowerAutomateからリスト型のデータを受け取る際には、Paramで[array]型で受け取ります。
Param {
[array]$PowerShell内で使変数名(任意名)
}
次に、PowerShell実行後のデータをPowerAutomateに引き渡すには、JSON形式に変換してから渡すのがポイントです。
$Json = ConvertTo-Json -InputObject $OutputData
write-output $Json
他はPowerShellの実行のお話になるため、割愛。。
PowerShellもかなり奥が深く、はまりました。上記画像が参考になれば。
PowerAutomateの処理を作成
1.リスト形式の変数を作成し、Excelからメールアドレスリストを格納
2.AzureAutomationのジョブ実行のアクションを作成
ここでポイントとなるのは、AzureAutomationに引き渡す値の指定方法です。
リスト型の変数を指定するのですが、動的なコンテンツに出てきませんので、式に強引に記述しないといけませんでした。
3.AzureAutomationからの処理結果を受け取るアクション追加
ここでは特に注意点はありません。
4.戻ってきた値はJSON形式であるため、JSONの解析
5.JSONデータから必要な値だけをピックアップしてcsvデータ作成
これにより、以下のようなcsvデータが作成可能です。
定期的に実行するようにしておけば、自動的にこのようなメール使用量チェックも楽になりそうですね。
注意点
今回紹介した内容を実行するには、2つお金がかかります。
1.PowerAutomateのプレミアコネクタ(AzureAutomationを呼び出すため)
2.AzureAutomationのサブスクリプション
ケースバイケースですが、今回紹介したような運用作業(いくつか)を行うために人を1人雇うよりも自動化するためにお金を払うほうがトータルコストは安くなることはあると思います。
まとめ
1.PowerAutomateからAzureAutomationを呼び出しPowerShellを実行させてみました。
2.一度やると理解できましたが、意外と難しかったです。
(肝はデータ受け渡し、PowerShellやJSON形式も理解していないといけない)
3.使えると運用は楽になります。ですがコストもかかりますのでケースバイケースでしょう。
コメント