Сценарий Powershell для удаления неиспользуемых ресурсов в Azure - PullRequest
0 голосов
/ 22 мая 2019

Сценарий. Люди часто запускают некоторые ресурсы в Azure для тестирования и оставляют его запущенным после тестирования.Я хочу создать скрипт Powershell, чтобы определить ресурсы, которые не использовались в течение длительного времени (например, 20 дней), и удалить их.

Я пытался перечислить ресурсы, но не смог получить метку времени.Я получил значение etag, в котором было время, но в случайном порядке.Я пытался разобрать это.Есть ли лучший способ решить эту задачу.

1 Ответ

0 голосов
/ 25 мая 2019

Вы можете использовать такой скрипт:

Чтобы сгенерировать токен на предъявителя, следуйте этому блогу

Connect-AzureRmAccount

Select-AzureRmSubscription -SubscriptionName "<Subscription_Name>"

$Headers=@{
    'authorization'="Bearer <bearer_token>"
}

# Get all resources and their changed time

$resources= Invoke-RestMethod -uri 'https://management.azure.com/subscriptions/<subscription_id>/resources?api-version=2018-05-01&$expand=changedTime,createdTime' -method get -Headers $Headers | select-object -Expandproperty value

# Delete all resources which have not been changed since 20 days

foreach ($resource in $resources)
{
$count=0
$time=[datetime]::Parse($resource.changedTime)
$datetime = (Get-Date).AddDays(-20)
$utcDatetime = $datetime.ToUniversalTime()            
if ($time -lt $utcDatetime)
{
$resource.id
$time
Write-Output "Deleting resource now"
Remove-AzureRmResource -ResourceId $resource.id
}
}

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...