1

背景

であなたが十分なリソースを持っていることを確認するために、どのように、これは不完全な情報と、質問のように思えるなら、それはあります。これはAzureを使用して、大量のVMを自動的にプロビジョニングし、スケールし、縮小し、サードパーティによって私たちに渡され、いくつかの問題を理解するのに問題がある大規模なプロジェクトと関係しているからです。Azureの

#Get VMs info. do it via minimum calls to speed up things 
    started_on = time.time() 
    while True: 
     try: 
      time.sleep(5) 
      vm = compute_client.virtual_machines.get(self.resource_group, vm_name) 
      break 

問題

:しかし、私は紺碧のVMを起動する方法で使用されるこのコードを参照してくださいなど我々は彼らを殺すために、AzureのVMを起動するためのpythonのアズール SDKを使用している

を説明するために全力を尽くしますよ

私たちは、このコマンドを実行すると、私たちはこのエラーを取得たまに:調査時

aioc.logic.connectors.azure:2017-08-17 08:39:45,709 | ERROR | Stop waiting for VM auto-acfinH-25 to finish 
Traceback (most recent call last): 
    File "/home/aioc/aioc/aioc/logic/connectors/azure.py", line 126, in start 
    vm = compute_client.virtual_machines.get(self.resource_group, vm_name) 
    File "/home/aioc/venv/lib/python3.4/site-packages/azure/mgmt/compute/compute/v2016_04_30_preview/operations/virtual_machines_operations.py", line 369, in get 
    raise exp 
msrestazure.azure_exceptions.CloudError: Azure Error: ResourceNotFound 
Message: The Resource 'Microsoft.Compute/virtualMachines/auto-acfinH-25' under resource group 'AIOCBot' was not found. 
aioc.logic.main_controller_logic:2017-08-17 08:39:45,978 | ERROR | An error occurred while checking Vm with id '599553cdc1462e3a828c66da' machine id '328' 
Traceback (most recent call last): 
    File "/home/aioc/aioc/aioc/logic/main_controller_logic.py", line 41, in run_vm_controller 
    started_vms = vmc.start(vm.machine_type, 1) 
    File "/home/aioc/aioc/aioc/logic/connectors/azure.py", line 135, in start 
    vm_net_interface = network_client.network_interfaces.get(self.resource_group, vm_name) 
    File "/home/aioc/venv/lib/python3.4/site-packages/azure/mgmt/network/v2017_03_01/operations/network_interfaces_operations.py", line 171, in get 
    raise exp 
msrestazure.azure_exceptions.CloudError: Azure Error: ResourceNotFound 

を、これは紺碧hでB/C私たちのリソースを起こっている判明aveは最大になった(?)。この問題を解決する方法は、この方法を使用して前記リソースをパージすることです。

def cleanup_all(self): 
    """ 
    Clean up all auto-created resources 
    """ 
    compute_client = ComputeManagementClient(self.credentials, self.subscription_id) 
    network_client = NetworkManagementClient(self.credentials, self.subscription_id) 
    resource_client = ResourceManagementClient(self.credentials, self.subscription_id) 

    l = resource_client.resources.list() 
    for r in [r for r in l if r.name.startswith('auto-')]: 
     try: 
      if 'publicIPAddresses' in r.type: 
       rs = network_client.public_ip_addresses.delete(self.resource_group, r.name) 
       rs.wait() 
      elif 'Microsoft.Network' in r.type: 
       rs = network_client.network_interfaces.delete(self.resource_group, r.name) 
       rs.wait() 
      elif 'Microsoft.Compute/virtualMachines' in r.type: 
       rs = compute_client.virtual_machines.delete(self.resource_group, r.name) 
       rs.wait() 
     except: 
      log.warn("Failed to stop resource: %s with type: %s", r.name, r.type, exc_info=1) 

これはすばらしいことです。しかし、ビジネス上の理由から、単に - 定期的な間隔でこのコマンドを実行するcronジョブを作成することはできません。 - 一度に多くの異なる環境に影響を及ぼす自動化された方法では実行できません(例:prod/demo/stage/dev )これは大きすぎて、側面に影響を及ぼして理解できない。

これは、すべてのenvがクリアで準備ができているという合意が得られたら、このコマンドを定期的に実行する必要があることを意味します。私はAzureのコンソール

enter image description here

と認めどのくらい私ののを見つけるために方法を持っている内部リソースセクションを見てみたいと思い

質問

私が消費したのリソース。私は、あなたが許可している公的ipsなどの45%を消費しているように、そして私が安全かどうか、またはパージコマンドをもう一度実行する必要があるかどうかを知っているということを考えてみましょう。

アイデア?

更新

詳細に

This page discussees例えば可能な限界、:

enter image description here

しかし、それは、現在使用されているか、どのようにどのくらいこれらのリソースの測る方法について話しません。多くは残っています。それは私が見つけようとしているものです

誰かが何が起こっているのか説明できますか?

+0

プログラムで情報を検索したいのですか、または手動で処理することもできますか? –

+0

@ GauravMantriはじめに私はマニュアル情報に満足していますが、プログラムでこの情報を取得する方法を知っています。 – abbood

+0

@abboodまず、これはクラシックモードの制限です。リソースモードでは、デフォルトで60のパブリックIPアドレス(動的)を使用できますが、制限に達するにはチケットを作成することができます。この[リンク](https://docs.microsoft.com/en-us/azure/azure-supportability/resource-manager-core-quotas-request)を参照してください。チケットは無料です。 –

答えて

3

あなたの質問に答えてください。マニュアルについては、Azureポータル自体でこの情報を見つけることができます。 [Subscription]をクリックして、購読リストから購読を選択し、[Usage + quota]を選択します。

enter image description here

+0

それはあまりにも簡単だった..あなたは私がプログラムでこれを読むことができる私のリソース(つまりapis)を与えることができれば私は本当にそれを感謝したい! :) – abbood

2

あなたはプログラムでそれらを見つけることができますが、これは、プロバイダごとに送出されます。より多くのイベントベースのプログラミングについては

、そこおそらくEvent GridやLogic Apps、Azure Monitorを自動的に警告する方法です。

関連する問題