私の要件は、起動時にすべてのVMをサブスクリプションで取得することです。私はVMがダッシュボードで時刻を作成したのを見つけませんでした。Activity log
にあるようにタイムスタンプが見つかりました。作成した時刻と共に1つのサブスクリプションIDで作成されたすべてのVMをフェッチしたいと思います。Python APIを使用してAzureで仮想マシンの作成時間を取得します
(2FAがそのように有効になっている。このアカウントの詳細について - UserPassCredentialsが動作しません)サブスクリプションID内のすべてのVMの
一覧:
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))
がActivity log
から作成された時刻を取得:を
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__)
私はすべてのVMを取得できます(1 tサンプルプログラム)、しかしActivity log
をフェッチしようとしているときにエラーが発生しました(2番目のサンプルプログラム)。
エラー:
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'
誰かが問題をしてください見つけるために私を助けることができますか?任意のヘルプは本当に感謝します。
私の答え、thanks.Itは私のために働くことを参照してください。 –