既定の環境
Power Automateを始めたばかりだったり、非IT職から挑戦している方にとって、環境
は中々考えが及ばない領域ではないでしょうか。
私自身、経験値が増えていくことに伴い、「あ、環境って気にしないとダメなんだ」と気が付いてから悲しくなりました。
環境を分ける理由としては
- 本稼働へ変更に伴う影響を与えない安全性の確保
- 既定で作成して公開をするサイクルだと、誤って変更に伴う影響が出てしまう
- 作業環境の独立
- 自由に作業できることで試行錯誤しやすい
- リリース管理
- 開発・テスト・本稼働とわけることで継続的なデリバリーや手プロ意を効率化
- ユーザーへの影響を最小限に
- テスト環境での十分な開発を経てからデプロイすることで、「あ、やってしまった」という事故を防ぐ
といったことが挙げられます。
Power Platform 環境の種類は複数あるので、資料に目を通しておくことを推奨します。
今まで、既定の環境でPower AutomateやPower Appsを作ってきましたが、「そういうものではない」ということを知ってから悲しくなったことが記憶に新しいです。
ということで今回は大掃除をしていきたいと思います。今回はPower Automate 管理コネクタに焦点を当てて、現状の改善を進めていきたいと思います。
Power Automate 管理コネクタ
Power Automate 管理コネクタを使用すると、Power Automate 管理サービスとのやり取りが可能になります。 例: フローの作成、編集、および更新。
Power Automateの画面で見てみると「Power Automate 管理」という名前でヒットします。
このコネクタはプレミアム
の対象ではないため、標準のライセンスでも利用可能です。
Power Automateの稼働状況、フローの詳細、所有者の状況といったあらゆる情報が見えます。
とりま現状をCSVに書き出してみる
ひとまず下記のシナリオで、「既定の環境」のPower Automate フロー
を一覧化してみます。
- フローを手動でトリガーする
- 自分のフローの一覧表示
既定の環境
を選択 - CSV テーブルの作成
- OneDrive for Business - ファイルの作成
(1) 自分のフローの一覧表示
環境
は自分の環境を選択
(2) CSV テーブルの作成
データ操作にてPower Automate 管理
で取得した値を列挙します。
From
- outputs('自分のフローの一覧表示')?['body/value']
Columns
で下記の項目のみ抽出します。
キー | 設定値 | 名前 | 解説 |
---|---|---|---|
name | item()?['name'] |
フロー名 | JSONからの呼び出しで使う内部名 |
displayName | item()?['properties/displayName'] |
フローの表示名 | 日本語を含めた自由に設定できるフローの名前 |
id | item()?['id'] |
コネクタ ID | |
status | `item()?['properties/state'] | フローの状態 | オンやオフなどを調査 |
triggers | item()?['properties']?['definitionSummary']?['triggers'][0]?['kind'] |
フロー トリガーの種類 |
Button ・PowerAppV2 など |
environment | item()?['properties']?['environment']?['name'] |
環境 | この操作では一定の値を返す、フローID |
(3) 結果をOneDrive for Businessに保存
ファイルの作成
アクションで結果をCSVファイルとして削除します。
ファイル名はその場しのぎのものを設定しています。
ファイル コンテンツ
の設定は、日本語の文字化け対策に下記のように設定します。
concat(decodeUriComponent('%EF%BB%BF'),body('CSV_テーブルの作成'))
悲惨な結果
中身は大変なことになっています💦
214
個も作っている💦
これだけ既定の環境でやらかしてきたことがよくわかります。
その分だけいろいろ知見が積み上がってきたと前向きに捉えましょう。
稼働していないフローを削除する
さて、この中でstate
がStopped
になっているフローは現在稼働していないフローです。
使わないからオフにしよう、と安直に設定した結果ですね。
コチラを削除していこうかと思います。
コネクタにフローの削除
が存在するため、活用します。
環境は先ほどと同様、Flow
は、Power Automate 管理
コネクタで取得したname
属性です。
そのため、カスタム値の設定でitem()?['name']
と指定することで、繰り返し処理が実行できます。
なんとなくバックアップはとりたい
削除
となると二の足を踏んでしまうのが人間の性。
せめてこのフローが何だったのかは、把握しておきたいというニーズもあると思います。
ここで注目したいものが「自分のフローの一覧表示」のdefinitionSummary
です。
フローのトリガーとアクションが列挙されていることがわかります。
削除前にjson
形式で保存しておくことにしましょう。
保存先はOneDrive for Businessにします。
ファイルの作成
アクション
ファイル名 - @{items('For_each')?['name']}.json
ファイル コンテンツ - @{item()?['properties']?['definitionSummary']}
こちらを実行するとOneDrive for Business
にjson
ファイルで中身が確認できます。
Visual Studio Codeで中身を見ることもできますね!
フロー削除の実行
削除を実行するフロー全体です。
- フローを手動でトリガーする
- 自分のフローの一覧表示
既定の環境
を選択 -
アレイのフィルター処理
でstate
がStopped
のみのフローに絞り込み - 繰り返し処理
-
OneDrive for Business - ファイルの作成 - 削除するフローの
definitionSummary
- 削除の実行
-
OneDrive for Business - ファイルの作成 - 削除するフローの
45件削除しました。
まだまだ汚いですね。
使わないフローを可視化するために
大掃除計画、今回だけでは終わらない見込みです。
そもそも使っているフローかどうかの判別が必要になります。
さて、その判別をどう実現していくのか、それが次回の課題になりそうです。
ということで今回のブログはここまで!
読んでくださり、ありがとうございました!