APIのレート制限は、Workload Securityのパフォーマンスを低下させる可能性のあるAPIコール数の急増を防ぐために、/apiエンドポイントに設定されています。
APIコール率は、過去60秒以内にWorkload Securityが受信したAPI呼び出しの数として測定されます。レート制限を超えた場合、コールレートがすべてのレート制限を下回るまでマネージャは要求を処理しません。
呼び出しが行われ、APIのレート制限を超えた場合、応答コードは429で、メッセージはToo many API requestsです。

コード内のハンドル率制限エラー

SDKメソッドまたは関数が実行されるとき、環境内でAPIレート制限が超過されると、そのメソッドまたは関数はApiExceptionをスローし、メッセージToo many API callsを表示します。このメッセージをテストするロジックをコードに含め、キャッチされた場合は一定時間待機してからスクリプトを再実行することを検討してください。
レート制限を一貫して超過する場合は、トレンドマイクロ サポートに連絡してください。
レート制限を超えている間に行われた呼び出しは、APIレート測定にカウントされないことに注意してください。
SDKのAPIUsageAPIクラスを使用して、呼び出し率を確認できます (APIレファレンスのAPI Usageを参照)。例えば、特定の期間に発生したすべてのAPI呼び出しを検索できます。返されたデータを解析して、合計呼び出し数をカウントします。また、コード429のレスポンス数も確認できます (Date-range searchesを参照)。
次の例では、APIレート制限を超えたときに発生する例外またはエラーをキャッチします。検出されると、指数バックオフアルゴリズムによって、コールが再試行されるまでの遅延が計算されます。再試行回数の上限は次のとおりです。
while True:

    # Create a computer object and set the policy ID
    computer = api.Computer()
    computer.policy_id = policy_id
    try:
        # Modify the computer on Workload Security and store the ID of the returned computer
        computer = computers_api.modify_computer(computer_ids[change_count], computer, api_version, overrides=False)
        modified_computer_ids.append(computer.id)
        retries = 0

        # Increment the count and return if all computers are modified
        change_count += 1
        if change_count == len(computer_ids):
            return modified_computer_ids
    except api_exception as e:
        if e.status == 429 and retries < MAX_RETRIES:
            # The error is due to exceeding an API rate limit
            retries += 1

            # Calculate sleep time
            exp_backoff = (2 ** (retries +3)) / 1000
            print("API rate limit is exceeded. Retry in {} s.".format(exp_backoff))
            time.sleep(exp_backoff)
        else:
            # Return all other exception causes or when max retries is exceeded
            return "Exception: " + str(e)