使用 Python SDK 在 Azure 中查找/列出孤儿资源

问题描述 投票:0回答:0

我是 Python 初学者,我有一个 powershell 脚本,它可以识别 azure 中的孤立对象,例如未使用的存储帐户、Vnet、Ip、磁盘、负载平衡器,因此我需要使用 Azure 函数或自动化帐户将它们复制到 python 脚本中。如果在 Azure 中可行或不可行,请帮助我,如果可行,请帮助我。

如果在 Azure 中可行或不可行,请帮助我,如果可行,请帮助我。下面是我检测孤立对象的 powershell 脚本。

#Login to Azure
$conn = Get-AutomationConnection -Name AzureRunAsConnection
Connect-AzAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint -WarningAction Ignore > $null

#Find Orphaned Disks

Get-AzDisk | Where-Object {$_.DiskState -eq "Unattached"} | Select -Property Name, ResourceGroupName, Location, Id, ResourceGuid, ProvisioningState, Tags

#Find Orphaned LoadBalancer

Get-AzLoadBalancer | Where-Object {!($_.BackendAddressPools)} | Select -Property Name, ResourceGroupName, Location, Id, ResourceGuid, ProvisioningState, Tags 

#Find Orphaned PublicIP

Get-AzPublicIpAddress | Where-Object {$_.IpConfiguration -eq $null} | Select -Property Name, ResourceGroupName, Location, Id, ResourceGuid, ProvisioningState, Tags

#find orphaned nsg

Get-AzNetworkSecurityGroup | Where-Object {!($_.NetworkInterfaces) -and !($_.Subnets)} | Select -Property Name, ResourceGroupName, Location, Id, ResourceGuid, ProvisioningState, Tags 

#Find Orphaned VirtualNetwork

Get-AzVirtualNetwork | Where-Object {!($_.Subnets)} | Select -Property Name, ResourceGroupName, Location, Id, ResourceGuid, ProvisioningState, Tags 

#Unused storage accounts
& {
foreach ($storageAccount in Get-AzStorageAccount) {
$storageAccountName = $storageAccount.StorageAccountName #"azureautomationstr"
$resourceGroupName =  $storageAccount.ResourceGroupName


  # Get storage account key
     $storageAccountKey = (Get-AzStorageAccountKey -Name $storageAccountName -ResourceGroupName $resourceGroupName).Value[0] | Where-Object {$_.Location -eq  $LocationName}
     
     # Create storage account context using above key
     $context = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey | Where-Object {$_.Location -eq  $LocationName} #-ErrorAction Stop  $null
    
    # Get the last modified date
    $ErrorActionPreference = “silentlycontinue”
    $lastModified = Get-AzStorageContainer -Context $context | Sort-Object -Property @{Expression = {$_.LastModified.DateTime}} | Select-Object -Last 1 -ExpandProperty LastModified 
    
    $unusedacc = (Get-Date).AddDays(-90)
        if ($lastModified.DateTime -lt $unusedacc)
        {
        if($lastModified -eq $null){
        New-Object psobject -Property @{
            Name = $storageAccountName;
            #LastModified = $lastModified.DateTime;
            ResourceGroupName = $resourceGroupName
            
        }
        }
        } 
  }
} | Format-Table Name, ResourceGroupName -autosize
```````
azure azure-functions azure-automation azure-sdk-python
© www.soinside.com 2019 - 2024. All rights reserved.