这个问题通常是由于AWS Lambda执行环境的网络或安全策略引起的。为了解决这个问题,可以尝试在Lambda函数代码中显式禁用默认的并发网络连接管理器并使用单个连接请求的网络连接来处理pyuno请求。具体实现代码如下:
import uno from com.sun.star.connection import NoConnectException
context = None
def get_remote_context(): global context
if context is None:
context = uno.getComponentContext()
resolver = context.ServiceManager.createInstanceWithContext(
"com.sun.star.bridge.UnoUrlResolver", context)
while True:
try:
context = resolver.resolve("uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext")
break
except NoConnectException:
# Wait for a little while before trying again
time.sleep(1)
return context
注意:为了使此代码有效,你需要先将AWS Lambda配置中的网络和安全设置进行调整。具体设置可以参考AWS文档。