Meine Anforderung ist es, alle VMs in einem Abonnement mit Start (erstellt) Zeit zu erhalten. Ich habe die VM im Dashboard nicht gefunden, wo wie in der Activity log
ein Zeitstempel gefunden wurde. Ich möchte alle VMs, die von einer Abonnement-ID erstellt wurden, zusammen mit der erstellten Zeit abrufen.Erhalten Sie virtuelle Maschine erstellt Zeit auf Azure mit Python-API
(für dieses Konto Details wird 2FA so aktiviert - UserPassCredentials wird nicht funktionieren) ein Abonnement-ID
Liste aller VMs in:
import os
from azure.common.credentials import ServicePrincipalCredentials
from azure.mgmt.compute import ComputeManagementClient
subscription_id = os.environ['AZURE_SUBSCRIPTION_ID']
credentials = ServicePrincipalCredentials(client_id=os.environ['AZURE_CLIENT_ID'], secret=os.environ['AZURE_CLIENT_SECRET'], tenant=os.environ['AZURE_TENANT_ID'])
compute_client = ComputeManagementClient(credentials, subscription_id)
for vm in compute_client.virtual_machines.list_all():
print("\tVM: {}".format(vm.name))
erstellt Zeit von Activity log
Fetch:
import os
import datetime
from pprint import pprint
from azure.monitor import MonitorClient
from azure.common.credentials import ServicePrincipalCredentials
today = datetime.datetime.now().date()
filter = " and ".join([ "eventTimestamp le '{}T00:00:00Z'".format(today), "resourceGroupName eq 'test-group'" ])
subscription_id = 'xxxxx'
credentials = ServicePrincipalCredentials(client_id=os.environ['AZURE_CLIENT_ID'], secret=os.environ['AZURE_CLIENT_SECRET'], tenant=os.environ['AZURE_TENANT_ID'])
client = MonitorClient(credentials, subscription_id)
select = ",".join([ "Administrative", "Write VirtualMachines" ])
activity_logs = client.activity_logs.list(filter=filter, select=select)
for i in activity_logs:
pprint(i.__dict__)
Ich bin in der Lage, alle VMs (1s t Beispielprogramm), aber beim Versuch, die Activity log
zu holen erhalten Sie einen Fehler (2. Beispielprogramm).
Fehler:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Python/2.7/site-packages/msrest/paging.py", line 109, in __next__
self.advance_page()
File "/Library/Python/2.7/site-packages/msrest/paging.py", line 95, in advance_page
self._response = self._get_next(self.next_link)
File "/Library/Python/2.7/site-packages/azure/monitor/operations/activity_logs_operations.py", line 117, in internal_paging
raise models.ErrorResponseException(self._deserialize, response)
azure.monitor.models.error_response.ErrorResponseException: Operation returned an invalid status code 'Bad Request'
Kann mir jemand helfen, das Problem zu finden, wenden Sie sich bitte? jede Hilfe wirklich geschätzt.
Bitte beziehen Sie sich auf meine Antwort, danke.Es funktioniert für mich. –