ビュー:
検索は、タスクの自動化に役立つ強力なツールです。 APIの各エンドポイントは、リソースを検索するための操作を提供します。たとえば、コンピュータの検索の操作/api/computersエンドポイントを使用してコンピュータを検索します。
検索操作を使用するには、1つ以上の検索条件を含む検索フィルタオブジェクトを指定します。検索条件オブジェクトには、次の種類の検索を設定するためのプロパティが含まれます。
  • [ブール値:]ブール値で検索します。
  • [選択肢:]有効な値のセットが定義されているフィールドの検索
  • [ID:]一意のIDの検索
  • [Null:] null値の検索
  • [数値:]数値の検索
  • [文字列:]文字列値の検索
  • [日付範囲:]日付値で検索
複数の条件を使用する検索では、すべての条件を満たす結果が返されます。
ヒント
ヒント
で述べたようにリソースのプロパティ値に関する注意事項APIを直接使用する場合は、0を使用してnull値を表します。ただし、ヌル値を検索するには、ヌル検索を使用します。 0の数値検索は実行しません。
検索条件には次の項目が含まれます。
  • 検索するフィールド (リソースのプロパティ) の名前 -- フィールド名では大文字と小文字が区別されることに注意してください。
  • 検索する値 (日付値の場合は日付の範囲)
  • フィールド値に対してテストする演算子 (日付値の検索には適用されません)
  • 返されるアイテムの最大数 (初期設定は5000)
ヒント
ヒント
ID検索を実行する場合、フィールド名はIDフィールドと見なされるため、フィールド名は含めません。
検索する値の種類によって、使用できる演算子が決まります。
種類
演算子
ブール
true (初期設定) false
選択肢 (有効な値のセットが定義されているフィールドの場合)
等しい (初期設定) 等しくない
日付
日付関連の検索では日付範囲が使用され、演算子は明示的に使用されません。
ID (一意のID用)
等しい (初期設定) 大なり小なり 等しくない
Null
true (初期設定。trueはnullを示します) false
数字
等しい (初期設定) 大なり小なり 等しくない
文字列
等しい-等しくない
次の例では、ポリシー名で簡易検索を実行します。
# Set search criteria search_criteria = api.SearchCriteria() search_criteria.field_name = "name" search_criteria.string_test = "equal" search_criteria.string_value = name # Create a search filter search_filter = api.SearchFilter(None, [search_criteria]) search_filter.max_items = 1 # Perform the search policies_api = api.PoliciesApi(api.ApiClient(configuration)) policies_api.search_policies(api_version, search_filter=search_filter)
次の例は、複数の条件を含む検索フィルタを作成する方法を示しています。
# Set search criteria for platform policy_criteria = api.SearchCriteria() policy_criteria.field_name = "policyID" policy_criteria.numeric_test = "equal" policy_criteria.numeric_value = policy_id # Set search criteria for relay relay_criteria = api.SearchCriteria() relay_criteria.field_name = "relayListID" relay_criteria.numeric_test = "equal" relay_criteria.numeric_value = relay_list_id # Create the search filter search_filter = api.SearchFilter(None, [policy_criteria, relay_criteria])
API呼び出しの認証の詳細については、を参照してください。 Server & Workload Protectionによる認証

検索可能なフィールド

APIレファレンス/参照情報リソースのどのフィールドが検索可能かを示します。フィールドの情報は、操作の対応オブジェクトで確認できます。
  1. 検索するリソースの種類を返す操作をクリックします。たとえば、Describe a Computerオペレーションはコンピュータリソースを返します。
  2. [応答] セクションで [ [200件成功]]をクリックします。
  3. フィールドの説明を読みます。検索可能フィールドの説明には、「データ型として検索可能」と記載されています。データ型には、文字列、数値、ID、日付、ブール、および選択肢を指定できます。
フィールド名では大文字と小文字が区別されます。
次のフィールドは検索できません。
  • locale任意のオブジェクトのフィールド
  • 値としてオブジェクトを持つほとんどのフィールド。policySettingsaのフィールドPolicyオブジェクト (例外については、後述の「コンピュータのサブオブジェクトの検索」を参照)。
検索できないフィールドを検索すると、次のようなエラーが表示されるInvalid SearchFilter: unknown fieldName: platform

コンピュータのサブオブジェクトを検索

値としてオブジェクトを持つフィールドは通常検索できませんが、コンピュータクラスにはいくつかの例外があります。たとえば、ec2VirtualMachineSummaryフィールドがオブジェクトであり、そのオブジェクトのいくつかのフィールドが検索可能です。accountIDおよびavailabilityZone。同様に、name field of computer interfaces。 (コンピュータの説明での操作APIレファレンス/参照情報次のJSONは、コンピュータオブジェクトのデータ構造内のこれらのサブオブジェクトを示しています。
{ "hostName": "gui2-336", "displayName": "", "description": "", ... "interfaces": { "name": "ethernet", ... }, "ec2VirtualMachineSummary": { "accountID": "123456789012", "availabilityZone": "ap-northeast-1", ... }, ... "ID": 201 }
検索条件では、サブオブジェクトのフィールド名はパスとして表されます。次に例を示します。ec2VirtualMachineSummary/publicIPAddressそしてinterfaces/name
ヒント
ヒント
を使用します。expandパラメータを指定すると、必要な情報のみが返されるコンピュータオブジェクトに含まれます。対応については、パフォーマンスのヒントガイドします。
コンピュータのサブオブジェクトを検索すると、そのサブオブジェクトが自動的に返されます。Computer次の場合を除くexpandに設定されていますnone(サブオブジェクトは返されません)。たとえば、EC2アカウントIDとexpandに設定されていますtasks、返されるComputerオブジェクトには、tasksそしてec2VirtualMachineSummaryプロパティ。次の場合expandに設定されていますec2VirtualMachineSummary 、返されるComputerオブジェクトには、ec2VirtualMachineSummaryプロパティ。
# Search criteria computer_criteria = api.SearchCriteria() computer_criteria.field_name = "ec2VirtualMachineSummary/accountID" computer_criteria.string_test = "equal" computer_criteria.string_value = account_id # Search filter max_items = None search_filter = api.SearchFilter(max_items, computer_criteria) # Include only the EC2 virtual machine summary in the returned computers expand = api.Expand(api.Expand.ec2_virtual_machine_summary) # Perform the search computers_api = api.ComputersApi(api.ApiClient(configuration)) return computers_api.search_computers(api_version, search_filter=search_filter, expand=expand.list(), overrides=False)

Pythonコードのフィールド名

Pythonクライアントライブラリを使用する場合は、検索で正しいフィールド名を使用していることを確認してください。一部のフィールド名は複数の単語が連結されており、キャメルケースの文字が使用されています。lastUpdated侵入防御ルールのプロパティ。対応するPythonプロパティでは、キャメルケースの代わりにアンダースコア文字 (_) を使用して、連結する単語を区切ります。last_updated 。フィールドを検索する場合は、検索するフィールド名を指定する必要があります (lastUpdated) ではなく、クラスプロパティ (last_updated )。
正しくないフィールド名を使用すると、次のメッセージとともにエラーが表示されます。Invalid SearchFilter: unknown fieldName
プロパティの名前に1つ以上の下線文字 (_) が含まれている場合は、次のアルゴリズムを使用してPythonクラスのプロパティをフィールド名に変換します。
  1. アンダースコアの直後の文字は大文字にします。
  2. 各アンダースコアを削除します。

文字列検索でのワイルドカードの使用

文字列検索では、文字列値に次の2つのワイルドカードを使用できます。
  • % : 0個以上の文字に一致
  • _ ; 1文字に一致
たとえば、文字列値%Security一致Server & Workload Protectionであり、次の条件にも一致します。Security。文字列値version_一致version1であり、一致しませんversion。リテラルを検索する場合%または_ワイルドカードを無効にできます。ただし、ワイルドカードの使用は初期設定で有効になっています。次の検索フィルタを使用して、「基本ポリシー」という名前のポリシーを検索できます。
# Create the search criteria search_criteria = api.SearchCriteria() search_criteria.field_name = "name" search_criteria.string_test = "equal" search_criteria.string_value = "Base%"
ヒント
ヒント
ワイルドカード検索を無効にするには、「SearchCriteria」オブジェクトの「stringWildcards」プロパティを「false」に設定します。
search_criteria.string_wildcards = "false"

期間検索を実行する

指定した2つの日付の範囲内にある日付値を含むフィールドを検索できます。次の検索条件フィールドで日付範囲を定義します。
  • [開始日:]範囲内の以前の日付。初期設定値は、最も早い日付です。
  • [起算日を含む:]範囲にFirstDateが含まれるか (true)、含まれないか (false) を示すブール値。初期設定はfalseです。
  • [最終日:]範囲内の後の日付。初期設定は、最新の日付です。
  • [LastDateInclusive:]範囲に LasteDate が含まれるか (true)、含まれないか (false) を示すブール値。初期設定はfalseです。
の値FirstDateそしてLastDate 1970年1月1日 (GMT) からのミリ秒数で表されます。
次の例では、最終更新日時に基づいて侵入防御ルールを検索します。
# Time that rules were last updated current_time_in_ms = int(round(time.time() * 1000)) last_updated_in_ms = current_time_in_ms - (num_days * 24 * 60 * 60 * 1000) # Set search criteria for the date range search_criteria = api.SearchCriteria() search_criteria.field_name = "lastUpdated" search_criteria.first_date_value = last_updated_in_ms search_criteria.last_date_value = current_time_in_ms search_criteria.first_date_inclusive = True search_criteria.last_date_inclusive = True # Create a search filter search_filter = api.SearchFilter(None, [search_criteria]) # Perform the search intrusion_prevention_rules_api = api.IntrusionPreventionRulesApi(api.ApiClient(configuration)) return intrusion_prevention_rules_api.search_intrusion_prevention_rules(api_version, search_filter=search_filter)
また、 Search Intrusion Prevention Rules operation in the API Reference. For information about authenticating API calls, see Server & Workload Protectionによる認証

null値の検索

nullテスト検索を使用して、フィールドに値がない (null) か、値がないかに基づいてリソースを検索します。たとえば、lastSendPolicySuccessコンピュータの のフィールドは、コンピュータのポリシーが最後に正常にアップデートされた時刻を示します。ポリシーアップデートを受信したことがないコンピュータを見つけるには、そのフィールドでnullテスト検索を実行します。
このタイプの検索の場合、検索条件には、検索するフィールドの名前と、値のないリソースを検索するかどうか (null_test = true ) または任意の値 (null_test = false )。
次の例では、ポリシーアップデートを受信したことがないコンピュータを検索します。
# Search criteria computer_criteria = api.SearchCriteria() computer_criteria.field_name = "lastSendPolicySuccess" computer_criteria.null_test = True # Search filter max_items = None search_filter = api.SearchFilter(max_items, computer_criteria) # Include minimal information in the returned computers expand = api.Expand(api.Expand.none) # Perform the search computers_api = api.ComputersApi(api.ApiClient(configuration)) return computers_api.search_computers(api_version, search_filter=search_filter, expand=expand.list(), overrides=False)
詳細については、コンピュータの検索操作については、 APIレファレンス/参照情報を参照してください。

ソート順

検索条件の特性によって、検索結果の並べ替え順序が決まります。
  • [ブール検索、選択肢検索、Null検索、および文字列検索:]返されたオブジェクトのIDの昇順で並べ替えられます。
  • [ID検索:] ID順。演算子は、順序が昇順か降順かを決定します。
    • 小なりおよび小なり: 降順
    • その他すべての演算子: 昇順
  • [数値検索:]検索するフィールドでソートされます。演算子は、順序が昇順か降順かを決定します。
    • 小なりおよび小なり: 降順
    • その他すべての演算子: 昇順
    複数の検索結果で検索されたフィールドの値が同じ場合、それらのオブジェクトはID順に2次的に並べ替えられます。
  • [日付検索:]検索するフィールドでソートされます。検索用に指定された日付範囲パラメータによって、並べ替え順序が決まります。
    • LastDateのみが提供されます: 降順
    • その他の組み合わせ: 昇順
    複数の検索結果で、検索された日付フィールドの値が同じ場合、それらのオブジェクトはID順に2次的に並べ替えられます。
  • [複数の検索条件:]複数の検索条件を使用する検索は、個々の条件の初期設定の並べ替え順序に関係なく、ID (昇順) で並べ替えられます。
SearchFilterオブジェクトを使用すると、返されたオブジェクトのIDによる初期設定の並べ替え順序をオーバーライドできます。

検索結果とページングを制限する

を使用します。maxItems検索フィルタのフィールドを使用して、返されるオブジェクトの数を制限します。返されるオブジェクトの最大数は初期設定で5000で、5000を超えることはできません。
また、maxItems ID検索結果のページングを実装するフィールド:
  • 大なり演算子を使用したIDによる検索
  • maxItemsを使用してページサイズを設定する
  • 検索結果の前のページで最も大きいIDに基づいて、検索するIDの値を計算します。
次の例は、検索を使用して一連のページ内のすべてのコンピュータを取得する方法を示しています。
# Set search criteria search_criteria = api.SearchCriteria() search_criteria.id_value = 0 search_criteria.id_test = "greater-than" # Create a search filter with maximum returned items page_size = 10 search_filter = api.SearchFilter() search_filter.max_items = page_size search_filter.search_criteria = [search_criteria] # Include the minimum information in the returned Computer objects expand = api.Expand(api.Expand.none) # Perform the search and do work on the results computers_api = api.ComputersApi(api.ApiClient(configuration)) paged_computers = [] while True: computers = computers_api.search_computers(api_version, search_filter=search_filter, expand=expand.list(), overrides=False) num_found = len(computers.computers) current_paged_computers = [] if num_found == 0: print("No computers found.") break for computer in computers.computers: current_paged_computers.append(computer) paged_computers.append(current_paged_computers) # Get the ID of the last computer in the page and return it with the number of computers on the page last_id = computers.computers[-1].id search_criteria.id_value = last_id print("Last ID: " + str(last_id), "Computers found: " + str(num_found)) return paged_computers
また、 Search Computers operation in the API Reference. For information about authenticating API calls, see Server & Workload Protectionによる認証