Код Python для удаления кода групп ресурсов в Azure с использованием тегов группы ресурсов

Я пытаюсь удалить группы ресурсов и ресурсы в нем, используя код Python. Я пробовал это в powershell, и он отлично работает. Теперь моей организации нужен Python. Я действительно новичок в python и пытаюсь написать код и потерпел неудачу.

Вот код powershell для того же. Может ли кто-нибудь помочь получить код в python.

Заранее спасибо.

 $rgs = Get-AzureRmResourceGroup; 

# $rgs=Get-AzureRmResourceGroup -name "TestResourceGroupToClean1";

if(!$rgs)
{ 
    Write-Output "No resource groups in your subscription"; 
} 
else{


    Write-Output "You have $($(Get-AzureRmResourceGroup).Count) resource groups in your subscription"; 
    foreach($resourceGroup in $rgs)
    { 
        $name=  $resourceGroup.ResourceGroupName; 
     if($resourceGroup.Tags.ExpiryDate)
     {
    try{
         $ResourceGroupTagDate=[datetime]::ParseExact($resourceGroup.Tags.ExpiryDate,'MM/dd/yyyy',$null)
         $count = (Get-AzureRmResource | where { $_.ResourceGroupName -match $name }).Count;
            if($ResourceGroupTagDate.Date -lt $today.Date)
            { 
                $subject="Automated Mail from Resource Group Cleaner"
                $body="Resource Group $($resourceGroup.ResourceGroupName) including resources has been deleted"
                Write-Output "The resource group $name has $count resources. Deleting it..."; 
                Remove-AzureRmResourceGroup -Name $resourceGroup.ResourceGroupName -Force; 
                Write-Output "The resource group $name and $count resources. Deleted..";
                Send-MailMessage -To '[email protected]' -Subject $subject -Body $body -UseSsl  -Port 587 -SmtpServer 'smtp.office365.com' -From $userid -Credential $creds 
            }

            }

person vin123    schedule 20.07.2018    source источник


Ответы (2)


Вот ошибка, которую я получаю Temp\kukzwo13.tgf\9bd12580-5780-4109-abab-66e88fb4df87", строка 59, если не item.tags['ExpiryDate']:KeyError: 'ExpiryDate'

В коде Python нам нужно проверить, действителен ли ключ для словаря. Я сделал демонстрацию для удаления группы ресурсов по тегам с кодом Python.

from azure.common.credentials import ServicePrincipalCredentials
from azure.mgmt.resource import ResourceManagementClient
import datetime
from datetime import time

# Tenant ID for your Azure Subscription
TENANT_ID = 'tenant id '
# Your Service Principal App ID
CLIENT = 'client id'
# Your Service Principal Password
KEY = 'scret key'
subscription_id = 'subscrptionId'
credentials = ServicePrincipalCredentials(client_id=CLIENT, secret=KEY, tenant=TENANT_ID)
client = ResourceManagementClient(credentials, subscription_id)
groups = client.resource_groups.list()
null_variable = None
for item in groups:
    if item.tags != null_variable:
            if 'ExpiryDate' in item.tags:
                expiryDate = datetime.datetime.strptime(item.tags["ExpiryDate"],"%m/%d/%Y")
                timediff = expiryDate < datetime.datetime.today()
                if timediff:
                    print(item.tags["ExpiryDate"])
                    print(item.name)
                    client.resource_groups.delete(item.name)
person Tom Sun - MSFT    schedule 30.07.2018

Я бы начал с примера страницы: https://github.com/Azure-Samples/resource-manager-python-resources-and-groups

и документы для поддержки https://docs.microsoft.com/en-us/python/azure/?view=azure-python

person Laurent Mazuel    schedule 20.07.2018
comment
Я имел в виду это. Я могу получить список групп ресурсов, но я не могу получить конкретные группы ресурсов с тегами. Вот мой питон ....... Я имел в виду это и смог получить список групп ресурсов, но я не могу получить теги этого ....... - person vin123; 21.07.2018
comment
Вот мой код ########################## resources.print('List Resource Groups') для элемента в client.resource_groups.list() : print(item) GROUP_NAME=item.name print(GROUP_NAME) print(item.tags) if (item.tags) не None: print(tags not none) if not item.tags['ExpiryDate']: print( Нет тега с именем ExpiryDate) иначе: ExpiryDate=item.tags['ExpiryDate'] print(\tExpiryDate: {}.format(ExpiryDate)) else: print(No Tags) ############## ################################# - person vin123; 21.07.2018
comment
Вот ошибка, которую я получаю \kukzwo13.tgf\9bd12580-5780-4109-abab-66e88fb4df87, строка 59, в ‹module›, если не item.tags['ExpiryDate']:KeyError: 'ExpiryDate' - person vin123; 21.07.2018
comment
Ваше исходное сообщение - это не Python, это Powershell :). Если вам нужна более качественная помощь, вы должны отредактировать свое сообщение с помощью кода Python. - person Laurent Mazuel; 23.07.2018