首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"[ERROR] OSError:[Errno 38] Function not implemented“-通过Lambda访问trend deepsecurity.ComputersApi

"[ERROR] OSError:[Errno 38] Function not implemented“-通过Lambda访问trend deepsecurity.ComputersApi
EN

Stack Overflow用户
提问于 2021-09-03 09:39:12
回答 1查看 53关注 0票数 1

我已经编写了一个python脚本,当在我的机器上本地运行时,它可以成功地查询趋势深度安全api调用。我的任务是在aws lambda中运行脚本,以便它是自动化的,并且可以进行调度。

该脚本遵循api参考中的示例,并成功调用了旧版api。但是,当我尝试使用computers api进行查询时,它在一行代码上失败了:computers_api = deepsecurity.ComputersApi(deepsecurity.ApiClient(configuration))

代码语言:javascript
复制
def get_computer_status_api():
    # Include computer status information in the returned Computer objects
    #expand = deepsecurity.Expand(deepsecurity.Expand.computer_status)
    expand = deepsecurity.Expand()
    expand.add(deepsecurity.Expand.security_updates)
    expand.add(deepsecurity.Expand.computer_status)
    expand.add(deepsecurity.Expand.anti_malware)

    # Set Any Required Values
    computers_api = deepsecurity.ComputersApi(deepsecurity.ApiClient(configuration))

    try:
        computers = computers_api.list_computers(api_version, expand=expand.list(), overrides=False)
        print("Querying ComputersApi...")
        api_response_str=str(computers)
        computer_count = len(computers.computers)
        print(str(computer_count) + " Computers listed in Trend")
    ...

我得到的错误是:

代码语言:javascript
复制
[ERROR] OSError: [Errno 38] Function not implemented
Traceback (most recent call last):
  File "/var/task/handler.py", line 782, in main
    get_computer_status_api()
  File "/var/task/handler.py", line 307, in get_computer_status_api
    computers_api = deepsecurity.ComputersApi(deepsecurity.ApiClient(configuration))
  File "/var/task/deepsecurity/api_client.py", line 69, in __init__
    self.pool = ThreadPool()
  File "/var/lang/lib/python3.8/multiprocessing/pool.py", line 925, in __init__
    Pool.__init__(self, processes, initializer, initargs)
  File "/var/lang/lib/python3.8/multiprocessing/pool.py", line 196, in __init__
    self._change_notifier = self._ctx.SimpleQueue()
  File "/var/lang/lib/python3.8/multiprocessing/context.py", line 113, in SimpleQueue
    return SimpleQueue(ctx=self.get_context())
  File "/var/lang/lib/python3.8/multiprocessing/queues.py", line 336, in __init__
    self._rlock = ctx.Lock()
  File "/var/lang/lib/python3.8/multiprocessing/context.py", line 68, in Lock
    return Lock(ctx=self.get_context())
  File "/var/lang/lib/python3.8/multiprocessing/synchronize.py", line 162, in __init__
    SemLock.__init__(self, SEMAPHORE, 1, 1, ctx=ctx)
  File "/var/lang/lib/python3.8/multiprocessing/synchronize.py", line 57, in __init__
    sl = self._semlock = _multiprocessing.SemLock(

搜索这个错误,它意味着我不能在lambda中使用深度安全api,因为lambda不支持多处理。

寻找确认,这是这种情况或建议,我可以改变,使这一工作。

趋势支持票证建议张贴到这里。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-08 11:13:43

通过在lambda中将python版本从3.8更改为3.7,解决了此问题。该脚本现在可以成功运行

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69042763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档