Python 使用Moto模拟Lambda响应返回';b";运行lambda时出错:(2,';WaitNamedPipe';,';系统找不到指定的文件';

Python 使用Moto模拟Lambda响应返回';b";运行lambda时出错:(2,';WaitNamedPipe';,';系统找不到指定的文件';,python,aws-lambda,pytest,boto3,moto,Python,Aws Lambda,Pytest,Boto3,Moto,我正在运行一个单元测试()来调用模拟的Lambda(with),并期望得到响应。假设我们正在导入boto3并创建了一个lambda客户端常量。以下是函数: def invoke_lambda(): request = {'message': 'Hello World!'} lambda_response = LAMBDA_CLIENT.invoke( FunctionName='hello-world-lambda', InvocationType

我正在运行一个单元测试()来调用模拟的Lambda(with),并期望得到响应。假设我们正在导入boto3并创建了一个lambda客户端常量。以下是函数:

def invoke_lambda():
    request = {'message': 'Hello World!'}
    lambda_response = LAMBDA_CLIENT.invoke(
        FunctionName='hello-world-lambda',
        InvocationType='RequestResponse',
        Payload=json.dumps(request)
    )

    response = lambda_response['Payload'].read()
    print(response)
    return response
下面是我的单元测试:

import zipfile

import boto3
from moto import mock_lambda

CLIENT = boto3.client('lambda', region_name='us-east-1')

# Expected response setup and zip file for lambda mock creation
def lambda_event():
    code = '''
        def lambda_handler(event, context):
            return event
        '''
    zip_output = io.BytesIO()
    zip_file = zipfile.ZipFile(zip_output, 'w', zipfile.ZIP_DEFLATED)
    zip_file.writestr('lambda_function.py', code)
    zip_file.close()
    zip_output.seek(0)
    return zip_output.read()

# create mocked lambda with zip file
def mock_some_lambda(lambda_name, return_event):
    return CLIENT.create_function(
        FunctionName=lambda_name,
        Runtime='python2.7',
        Role='test-iam-role',
        Handler='lambda_function.lambda_handler',
        Code={
            'ZipFile': return_event,
        },
        Publish=True,
        Timeout=30,
        MemorySize=128
    )

# Test function
@mock_lambda
def test_invoke_lambda():
    mock_some_lambda('hello-world-lambda', lambda_event)
    response = function_code.invoke_lambda()
    assert response['message'] == 'Hello World!'
运行Pytest时,我看到Lambda的响应是:b“运行Lambda时出错:(2,'WaitNamedPipe','系统找不到指定的文件')”


有没有办法解决这个问题?我在谷歌搜索中看到了一些指向docker的问题,但据我所知,Moto应该能够开箱即用,而无需在docker容器中运行。帮助会很好:)

事实证明我只需要安装Docker for Windows并让Docker运行。。。我再也看不到这个问题了,所以我想一切都很好SamN刚刚编辑了用Required docker模拟AWS lambdas。
如果docker未运行,您将看到错误:

'运行docker时出错:获取服务器API版本时出错:(2, “CreateFile”,“系统找不到指定的文件。”)'

从文件中