I am using Azure ComputeManagementClient.images.get() function to search and match images based on 'resource_group_name' and 'image_name' parameter and print the image details.
Azure ComputeManagementClient.images.get()
I have azure cli based authentication. 'az login'
Python code:
from azure.mgmt.compute import ComputeManagementClient
from azure.identity import AzureCliCredential
credential = AzureCliCredential()
compute_client = ComputeManagementClient(credential, '<subcribtion_id>')
imagee = compute_client.images.get(resource_group_name='ab-westeurope-image-
rg',image_name='ubuntu-latest-1707454954')
print(imagee)
Image name is in this format: distro-version-time-stamp
Actual image name = 'ubuntu-latest-1707454954' where '1707454954' is the time stamp of the image creation.
I am able to print the output(image details) when i give the entire 'image_name'= 'ubuntu-latest-1707454954'
But, when i give special character * in 'image_name' = 'ubuntu-latest-*' Azure gives output with "Code: ResourceNotFound"
I know, its considering 'image_name' = 'ubuntu-latest-*' as a string to match. But, i want it as asterisk in regex pattern matching.
I get this below error:
<!-- azure.core.exceptions.ResourceNotFoundError: (ResourceNotFound) The Resource 'Microsoft.Compute/images/ubuntu-latest-*' under resource group 'ab-westeurope-image-rg' was not found. For more details please go to https://aka.ms/ARMResourceNotFoundFix
Code: ResourceNotFound
Any help?
I have below VM images starts with "ubuntu-latest-" in resource group named Sri like this:
Note that, Azure SDK for Python doesn't directly support wildcard matching for VM image names. When I tried to retrieve these images by adding special character *
, I too got same error:
from azure.mgmt.compute import ComputeManagementClient
from azure.identity import AzureCliCredential
credential = AzureCliCredential()
compute_client = ComputeManagementClient(credential, '<subscription_id>')
imagee = compute_client.images.get(resource_group_name='Sri',image_name='ubuntu-latest-*')
print(imagee)
Response:
Alternatively, you can make use of below modified code that initially retrieves list of all images in resource group and filters that response to print matched images:
from azure.mgmt.compute import ComputeManagementClient
from azure.identity import AzureCliCredential
credential = AzureCliCredential()
compute_client = ComputeManagementClient(credential, '<subscription_id>')
images = compute_client.images.list_by_resource_group(resource_group_name='Sri')
match_string = 'ubuntu-latest-'
for image in images:
if match_string in image.name:
print(image.name)
Response: