こんにちは、サイオステクノロジー技術部 武井です。私は、マイクロソフトが実施しているテクニカルカンファレンス「Ignite」に参加するためにフロリダのオーランドということろに来ております。Igniteが実施している期間中に、「ほぼ」リアルタイムレポートをお届けしたいと思います。今回は「Event-based automation across hybrid environments using PowerShell in Azure Functions」について記載します。
このセッションは以下のような方向けです。
GAしたAzure FunctionsのPowerShellの概要及び開発方法を学びたい
Azure FunctionsによるPowerShell
Azure FunctionsはC#やnode.jsなど様々な言語をサポートしていますが、PowerShellがやっと正式サポート(Generally Available)となりました(^o^)待ってました!!ワタシ的にはIgniteでこれが一番ウレシイ発表でした。
Azure Funcitonsの詳細については、こちらをご覧下さい。
Azure FunctionsでPowerShellが実行できるようになるとウレシイことがたくさんです。
Office365やExchange Onlineなどの各サービスの操作は、Microsoft GraphによるRest APIにシフトされることになるとは言え、まだMicrosoft Graphの機能は十分とは言えず、PowerShellを利用しないと出来ない操作がたくさんあります。
Azure FunctionsでPowerShellを利用できることによって、様々なイベントをきっかけにして、Office365やExchange Onlineに対するあらゆる操作を行うことが可能になります。
本セッションでは、仮想マシンの削除やリソースグループの作成などをトリガーにして、Azure Functionsを実行して、いろいろな処理を自動化すれば幸せになるよという内容が語られています。
しかし、デモでは、Azure FunctionsによるPowerShellの実装方法の説明のみで、肝心のイベントによって駆動する具体的な方法は述べられていませんでした。それでも、Azure FunctionsによるPowerShellについて語られているドキュメントはまだ数少ないので、本セッションは非常に有用と思います。
Azure Functionsによる自動化シナリオ
セッションの中では、一般的な自動化シナリオについて説明されていました。具体的な例としては、仮想マシンの削除やリソースグループの作成、CPU使用率が90%以上超えたときなどが挙げられていました。
そしてについに、Azure FunctionsによるPowerShellがGAされました(^o^)私これを長い間待ち望んでいました。
デモ
デモでは、Azure FunctionsによるPowerShellによって、特定のタグがついている仮想マシンを停止するものを開発するというソースコードが紹介されていました。エディタはVisual Studio Codeでした。
ソースコードをご覧いただければわかると思いますが、中身は本当にPowerShellで動いています。仮想マシンの情報を取得するGet-AzVMや、仮想マシンを停止するStop-AzVMなど本当にPowerShellです^^;
そしてデモの中では、Visual Studio Codeでブレークポイントを打って、デバッグをするという内容も披露されていました。
今回の例は、あくまで一例であり、Azure FunctionsでPowerShellが使えることによって様々なことが可能になります。Office365のユーザーを作成したり、GAL(Exchangeのグローバルアドレス帳)を非表示にしたりとか、夢が広がります。
まとめ
タイトルにあるEvent-based…な部分はあまり語られていませんでしたが、Azure FunctionsによるPowerShell GAのアナウンスが聞けたこと、Azure FunctionsによるPowerShellのデモが見られただけでも、十分幸せでした。
現場からは以上でした。