0

コンピューター オブジェクトのセキュリティ更新プログラムのレポート値を追加しようとしています。Python SDK で list_computers メソッドを使用し、AWS TM 11.3.184 を使用します。

メソッド参照: https://automation.deepsecurity.trendmicro.com/article/11_3/api-reference?platform=aws#operation/listComputers

SDK のドキュメントによると、戻り値の中に securityUpdates オブジェクト (実際には Python の戻り値では security_updates) があり、これには status オブジェクトが含まれています。ただし、テストでは、security_updates が存在する間、その値は常に None であることが示されているようです

注: 注意すべき二次的な問題は、python SDK API リファレンスがキャメルケースを示していることです (Java SDK がそのように返すと仮定します) が、実際のリターンはスネークケースです。

コンソールでクロスチェックし、セキュリティ更新プログラムのステータスが "Up-to-Date" に設定されているコンピューターを確認しましたが、API コール リターンのオブジェクトには、代わりに [なし] が表示されています。切り取られたコードでは、この場合のコンピューター オブジェクトの戻りの終わりを見ることができます。

 'last_agent_communication': 1554232722261,
 'last_appliance_communication': None,
 'last_ip_used': '10.254.253.126',
 'last_send_policy_request': 1554148882568,
 'last_send_policy_success': 1554148896261,
 'log_inspection': {'module_status': {'agent_status': 'inactive',
                                      'agent_status_message': 'Off, not '
                                                              'installed, '
                                                              'no rules',
                                      'appliance_status': None,
                                      'appliance_status_message': None},
                    'rule_ids': None,
                    'state': 'off'},
 'no_connector_virtual_machine_summary': None,
 'platform': 'Amazon Linux (64 bit) (4.14.77-70.59.amzn1.x86_64)',
 'policy_id': 4,
 'relay_list_id': None,
 'sap': None,
 'security_updates': None,
 'tasks': None,
 'vmware_vm_virtual_machine_summary': None,
 'web_reputation': {'module_status': {'agent_status': 'inactive',
                                      'agent_status_message': 'Off, not '
                                                              'installed',
                                      'appliance_status': None,
                                      'appliance_status_message': None},
                    'state': 'off'},
 'workspace_virtual_machine_summary': None},

期待値は、API ドキュメントでは、None ではなく、これに似た戻り値のようなものです (もちろん、実際にはスネークの場合、これは API ref からコピーされます)。

"securityUpdates": {
"updateStatus": {
"status": "inactive",
"statusMessage": "string"
},
"lastChanged": 0,
"rules": [],
"antiMalware": [],
"webReputationService": [],
"manifests": [],
"other": []
},
4

1 に答える 1

0

私が「将来の DS API 機能の偶発的なスニーク プレビュー」と呼ぶものを見つけました。securityUpdates が表示されることを意味するドキュメント バグがありますが、これは DS 11.3 で提供される機能ではありません。私のチームにはドキュメントのバグをすぐに修正するケースがありますが、その間にあなたがバグに巻き込まれてしまったことをお詫びします.

API リファレンスのキャメル/スネーク ケースについては... API リファレンスは、camelCase を使用する DSM から送信された「有線」JSON を示しています。Python SDK が JSON を受け取ると、snake_case 変数に値を割り当てます (他の SDK は camelCase に割り当てるか、Postman のようなツールが JSON を直接表示します)。ただし、python オブジェクトの str() は json に似ているため、混乱していることがわかります。

それが物事を理解するのに役立つことを願っています。それ以外の場合は、python SDK を使用することがうまくいくことを願っています!

PS 私は Trend Micro Deep Security の R&D で働いています

于 2019-04-02T20:04:49.503 に答える