【PowerAutomate】AzureAutomaionでPowerShellを実行させる

IT

AzureAutomationという仕組みをご存じでしょうか。

Azure上でPythonやPowerShellを実行することができるサービスであり、自分のパソコンを使わずにコードを実行させることができます。

日々の作業の自動化・効率化に大いに役立ちそうな気がします。

今回は、PowerAutomateからAzureAutomationを使う具体例を紹介します。

初めてやる人には参考になると思います。

Azure Automaionとは

クラウド上で処理を自動化するサービスです。

公式のページを見るといろいろなことができそうです。

https://azure.microsoft.com/ja-jp/products/automation

今回は、具体例を紹介したいのでかなり限定した使い方となりますが・・

「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.使えると運用は楽になります。ですがコストもかかりますのでケースバイケースでしょう。

コメント

タイトルとURLをコピーしました