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 = 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言語によって異なります):none: 単純なプロパティ値のみを含み、複雑なプロパティは含まれません。この値はパフォーマンスを大幅に向上させ、コンピュータIDなどの最小限の情報が必要な場合に役立ちます。all: すべてのプロパティを含みます。これはデフォルト値です。allVirtualMachineSummaries: EC2、Azure、VMWareなどの仮想マシン要約プロパティをすべて含みます。allSecurityModules: 不正プログラム対策、IPS、アプリケーションコントロールなど、すべてのセキュリティモジュールのプロパティを含みます。
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とComputerFirewallRuleAssignmentsApiPolicyIntegrityMonitoringRuleAssignmentsRecommendationsApiとComputerIntegrityMonitoringRuleAssignmentsRecommendationsApiPolicyIntrusionPreventionRuleAssignmentsRecommendationsApiとComputerIntrusionPreventionRuleAssignmentsRecommendationsApiPolicyLogInspectionRuleAssignmentsRecommendationsApiと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 から大量のオブジェクトを取得するときにページ内の検索結果を取得して、サーバのリソースが大量に消費されないようにします。検索を実行しているときにマネージャのパフォーマンスが低下した場合は、コードをリファクタリングしてより小さい結果セットを返す一連の検索を実行します。
詳細については、リソースの検索ガイドの検索結果の制限とページングのセクションを参照してください。
