0

嗨,我正在使用 python 和 runbook 更新 azure 中的资源标签。我能够更新大多数资源的标签,但有些资源给了我这个错误

“NoneType”对象没有属性“更新”

我正在使用线程中也提到的代码spinet

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
)
4

2 回答 2

0

对于磁盘资源,无法从 resource.client 调用访问它们,因为磁盘是 VM 的子资源,而不是资源组的子资源。对于磁盘,我们需要调用 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
    )
于 2019-03-22T22:36:09.137 回答
0

可能代码告诉您resource.tags有时是None. 您可能想在您提到的代码之前尝试:

if not resource.tags:
    resource.tags = {}
于 2019-03-20T05:43:20.897 回答