APIとSDK呼び出しのパフォーマンスを向上させるには、次の方法を使用します。
コンピュータの応答サイズを最小にする
単純な値を持つコンピュータのプロパティは、常に返される
Computer
オブジェクトに含まれます。ただし、複雑な値を持つプロパティ (値が他のオブジェクトであるプロパティ) の含有は制御できます。次のJSONはComputer
オブジェクトのデータ構造を表しています。複雑なプロパティの値は中括弧{...}
で表されます。{ "hostName": "string", "displayName": "string", "description": "string", "lastIPUsed": "string", "platform": "string", "groupID": 0, "policyID": 0, "assetImportanceID": 0, "relayListID": 0, "agentFingerPrint": "string", "applianceFingerPrint": "string", "lastAgentCommunication": 0, "lastApplianceCommunication": 0, "lastSendPolicyRequest": 0, "lastSendPolicySuccess": 0, "agentVersion": "string", "computerStatus": {...}, "computerSettings": {...}, "interfaces": {...}, "biosUUID": "string", "azureARMVirtualMachineSummary": {...}, "azureVMVirtualMachineSummary": {...}, "ec2VirtualMachineSummary": {...}, "noConnectorVirtualMachineSummary": {...}, "vmwareVMVirtualMachineSummary": {...}, "workspaceVirtualMachineSummary": {...}, "esxsummary": {...}, "ID": 0, "antiMalware": {...}, "webReputation": {...}, "firewall": {...}, "intrusionPrevention": {...}, "integrityMonitoring": {...}, "logInspection": {...}, "applicationControl": {...}, "ESXSummary": {...}, "SAP": {...} }
例えば、コンピュータIDのリストが必要な場合、すべてのコンピュータをリストし、複雑なプロパティが
Computer
オブジェクトに含まれないように指定できます。エージェントのステータスに関心がある場合は、computerStatus
プロパティのみを含め、他の複雑なプロパティは含めないようにします。すべてのプロパティはデフォルトで返される
コンピュータ
オブジェクトに含まれます。ComputersApi
クラスのコンピュータを記述、リスト、および検索するメソッドまたは関数は、含まれるプロパティを制御するexpand
パラメータを定義します。expand
パラメータは文字列値のリストです。Expand
クラスは、リストに含めることができる文字列値を定義します。文字列値のリストについては、APIレファレンスのComputersの記述、リスト、および検索操作のexpandパラメータの説明を参照してください。次のコードは、コンピュータステータスレポートガイドの例からのもので、コンピュータステータスプロパティを含むコンピュータのリストを取得します:
expand = api.Expand() expand.add(api.Expand.computer_status) computers_api = api.ComputersApi(api.ApiClient(configuration)) computers = computers_api.list_computers(api_version, expand=expand.list(), overrides=False)
この例では、
コンピュータ
オブジェクトで返される情報は次のJSONに似ています:{ "hostName": "string", "displayName": "string", "description": "string", "lastIPUsed": "string", "platform": "string", "groupID": 0, "policyID": 0, "assetImportanceID": 0, "relayListID": 0, "agentFingerPrint": "string", "applianceFingerPrint": "string", "lastAgentCommunication": 0, "lastApplianceCommunication": 0, "lastSendPolicyRequest": 0, "lastSendPolicySuccess": 0, "agentVersion": "string", "computerStatus": {...}, "biosUUID": "string", "ID": 0, }
![]() |
ヒントExpand クラスは、Computer オブジェクトに含めるプロパティを指定しやすくするためのいくつかの文字列を定義します (文字列の正確な名前はSDK言語によって異なります):
`expand` パラメータの初期設定値は `all`です。`null` を指定するか、パラメータに値を指定しない場合、すべてのコンピュータ情報が返されます。
|
overridesパラメータを使用する
Workload Securityから多くの大きなオブジェクトを取得する場合、オーバーライドされたプロパティ値のみを含めることで、返されるオブジェクトのサイズを大幅に削減できます。多くのAPI呼び出しは、応答にターゲットリソースに設定されたオーバーライドのみを含めるか、すべての有効なプロパティを含めるかを制御する
overrides
パラメータを定義しています。詳細については、オーバーライドパラメータについてガイドを参照してください。
例えば、すべてのポリシーのIDが必要な場合、
overrides
がtrue
に設定されたポリシーを一覧表示するPoliciesApi
クラスのメソッドまたは関数を使用できます。多くのポリシーのプロパティが継承されている場合、オーバーライドを取得することで応答サイズを大幅に削減できます。IDはオーバーライドパラメータの値に関係なく常に返されます。policies_api = api.PoliciesApi(api.ApiClient(configuration)) policies_with_overrides = policies_api.list_policies(api_version, overrides=True)
ルールの割り当てを直接設定する
次のクラスを使用して、ポリシーとコンピュータのルール割り当てを設定できます。
PolicyFirewallRuleAssignmentsApi
とComputerFirewallRuleAssignmentsApi
PolicyIntegrityMonitoringRuleAssignmentsRecommendationsApi
とComputerIntegrityMonitoringRuleAssignmentsRecommendationsApi
PolicyIntrusionPreventionRuleAssignmentsRecommendationsApi
とComputerIntrusionPreventionRuleAssignmentsRecommendationsApi
PolicyLogInspectionRuleAssignmentsRecommendationsApi
とComputerLogInspectionRuleAssignmentsRecommendationsApi
これらのクラスを使用することは、
Policy
オブジェクトやComputer
オブジェクトのセキュリティモジュール拡張オブジェクトを使用してルールの割り当てを構成するよりも高性能です。例えば、ファイアウォールルールを割り当てるには、特定のポリシーにファイアウォールルールを追加するPolicyFirewallRuleAssignmentsApi
クラスのメソッドまたは関数を使用します。ルールを割り当てる低性能な方法は、ルールをFirewallPolicyExtension
オブジェクトに追加し、そのオブジェクトをPolicy
オブジェクトに追加してからPoliciesApi
を使用してポリシーを変更することです。単一の設定と直接対話する
ポリシー、コンピュータ、およびシステムの設定とやりとりするときの応答サイズを最小にするには、ポリシーを変更するのではなく、個々のポリシー設定を直接使用します。
Create and Configure a Policyで説明されているように、ポリシー設定と対話する方法は2つあります。
PoliciesApi
クラスを使用して、単一のポリシー設定を取得、変更、またはリセットします。応答にはSettingValue
オブジェクトが含まれます。PoliciesApi
クラスを使用してポリシーを取得または変更します。応答にはPolicy
オブジェクトが含まれており、PolicySettings
オブジェクトが含まれています。
String値を含む
SettingValue
オブジェクトは、ポリシーのすべてのプロパティ値と設定値を含むPolicy
オブジェクトよりもはるかに小さいです。同様に、
PoliciesApi
クラスを使用して個々のデフォルトポリシー設定と直接対話し、ComputersApi
クラスを使用して個々のコンピュータ設定を行い、SystemSettingsApi
クラスを使用して個々のシステム設定を行います (コンピュータを設定してポリシーをオーバーライドするおよびWorkload Securityシステム設定を構成するを参照)。ページの検索結果
可能な場合は、 Workload Security から大量のオブジェクトを取得するときにページ内の検索結果を取得して、サーバのリソースが大量に消費されないようにします。検索を実行しているときにマネージャのパフォーマンスが低下した場合は、コードをリファクタリングしてより小さい結果セットを返す一連の検索を実行します。
詳細については、リソースの検索ガイドの検索結果の制限とページングのセクションを参照してください。