Обновление тегов Azure У объекта NoneType нет атрибута «обновление» - PullRequest
0 голосов
/ 20 марта 2019

Привет, я обновляю теги ресурсов в Azure с помощью Python и Runbook. Я могу обновить теги на большинстве ресурсов, но некоторые ресурсы выдают мне эту ошибку

Объект 'NoneType' не имеет атрибута 'update'

Я использую код spinet, также упомянутый в thread

resource.tags.update(tag_dic)
if not resource.properties: 
    resource.properties = {}

resource_client.resources.create_or_update(                                   
resource_group_name=resource.id.split('/')[4],                       
resource_provider_namespace=resource.id.split('/')[6],
parent_resource_path='',
resource_type="",
resource_name=resource.name,
api_version=2018-M-D, 
parameters=resource
)

Ответы [ 2 ]

0 голосов
/ 23 марта 2019

Для дискового ресурса к ним нельзя получить доступ из вызова resource.client, поскольку диски являются дочерним ресурсом виртуальной машины, а не группы ресурсов.Для дисков нам нужно вызвать compute.client

compute_client = ComputeManagementClient(
    azure_credential,
    subscription_id,
    base_url=resourceManager_url)
managed_disk = compute_client.disks.get(resource_group, disk_name)
managed_disk.tags = {"test_tag":"yes"}
try:
    compute_client.disks.create_or_update(
        resource_group,
        resource_name_curr,
        managed_disk
    )
0 голосов
/ 20 марта 2019

Вероятно, код говорит вам, что resource.tags иногда None. Возможно, вы захотите попробовать, прежде чем код, который вы упоминаете:

if not resource.tags:
    resource.tags = {}
...