🐈
使ってなさそうな Bastion を削除する
使ってなさそうな Bastion を削除する
というわけで、前回作成した Azure Bastion で session 一覧を出す PowerShell cmdlet を使って、使ってなさそうな Bastion を削除してみましょう。
このために作ったこともあり、非常に簡単ですね。
Get-AzBastion | ForEach-Object {
$sessionCount = (Get-MyAzBastionSession -Id $_.Id).Count
if ($sessionCount -eq 0) {
Write-Verbose "Removing Bastion with ID $($_.Id)..."
Remove-AzBastion -ResourceId $_.Id -Force
} else {
Write-Verbose "Bastion with ID $($_.Id) has $sessionCount session(s) remaining."
}
}
実行中に出力する message も適当に ChatGPT に考えてもらいました。
利用中の session があれば、残ってるよ、という message を出します。
VERBOSE: Bastion with ID /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/xxxxxxxx/providers/Microsoft.Network/bastionHosts/bast-hub00 has 1 session(s) remaining.
利用中の session が無いようであれば -Force
付きで Remove-AzBastion
を実行し強制削除します。
VERBOSE: Removing Bastion with ID /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/xxxxxxxx/providers/Microsoft.Network/bastionHosts/bast-hub00...
Write-Verbose
を画面に出す方法
小ネタ: $verbosePreference = 'Continue'
と書いてから上記実行すると、Write-Verbose
で出力された message が画面に出るようになります。
ほかに Write-Debug
などがありますが、順番については about_Output_Streams を参照くださいませ。
まとめ
本当はこれを Azure Functions の TimerTrigger で毎晩 AM 00:00 - 05:00 に実行、というところまでやりたかったのですが飽きたのでいったんここまでとします。
Discussion