utilizzando Moto a Mock Lambda Response ritorna 'b "errore in esecuzione lambda: (2,' WaitNamedPipe ',' Il sistema non può trovare il file specificato. ')' '

sto eseguendo un test di unità (Pytest) a che invoca una Lambda beffata (con Moto) e si aspetta una risposta. supponiamo che stiamo importando boto3 e abbiamo creato una costante client lambda. ecco la funzione:

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

ecco il mio test di unità:

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!'

quando si esegue il Pytest, vedo che la risposta Lambda è: B "errore che esegue lambda: (2, 'WaitNamedPipe', 'Il sistema non può trovare il file specificato.')"

tutte le idee su come risolvere questo problema? vedo alcuni problemi che punta a docker da ricerche di Google, ma dalla mia comprensione Moto dovrebbe essere in grado di eseguire questa roba fuori dalla scatola, senza la necessità di eseguire questo in un contenitore. l'aiuto sarebbe grande:)


En title : Using Moto to Mock Lambda Response returns 'b"error running lambda: (2, 'WaitNamedPipe', 'The system cannot find the file specified.')"'

1 Comments:

  1. risulta che ho solo bisogno di installare Mobile per Windows e avere Mobile in esecuzione... non vedo più questo problema quindi penso che tutto vada bene. - SAMN appena ora modificare

More similar articles:

  • ottenere AMIS inutilizzati utilizzando boto3 witn AWS Lambda
  • utilizzando AWS Lambda e boto3 per aggiungere nuove linee agli oggetti di file di testo in S3
  • AWS Lambda: chiamata funzione da un altro AWS lambda utilizzando boto3 invocare
  • AWS API Gateway: non può mappare errore generato da Lambda al metodo di risposta utilizzando Integration Response
  • copia da S3 bucket in un account per S3 bucket in un altro account utilizzando Boto3 in AWS Lambda
  • testare AWS lambdas utilizzando Python
  • quando si utilizza lambda per generare attributi elbv2 (nome specificamente), ricevendo errore da Lambda che nome è più lungo di 32 caratteri
  • ottenere un flusso di dati da un file compresso seduto in un secchio S3 utilizzando boto3 lib e AWS Lambda
  • AWS Lambda che chiama altre lambda con gli stessi parametri?
  • 'risorsa richiesta non trovata' errore con la libreria Python Moto
  • caricare file tramite AWS Gateway Api attraverso Lambda a S3
  • creare il tasto API in AWS API Gateway da AWS Lambda utilizzando boto3
  • AWS funzione Lambda utilizzando il trigger di test o calendario (Timeout)
  • perché Lambda lancia improvvisamente l'errore "Richiesta è scaduto"?
  • come scarica il file S3 in Serverless Lambda (Python)
  • Python - put_item () S3, Lambda, DynamoDB -- Si è verificato un errore (ValidationException)
  • AWS Lambda callback su esecuzione asincrona
  • AWS funzione Lambda utilizzando Boto3 timeout
  • come trovare la dimensione totale della cartella di archiviazione AWS S3 utilizzando Lambda
  • ottenere errore durante l'accesso AWS DynamoDB da AWS Lambda
  • AWS Lambda errore chiave
  • timeout durante l'esecuzione di uno script python per eliminare RDS istantanee attraverso AWS Lambda
  • Boto3 m. in Lambda appeso dopo l'aggiunta di dettagli di rete
  • Python AWS funzione non riesce a restituire i dati ELB attraverso Lambda - funziona su console
  • lambda invoca Lambda tramite API Gateway
  • AWS Lambda per copiare i file all'interno delle cartelle nel secchio S3
  • dare il permesso a AWS Lambda per elencare tutti gli argomenti SNS
  • AWS Lambda non può connettersi a Kinesis Firehose "Max tentativi superati con url"
  • AWS Lambda python Eliminare la connessione
  • come invocare una funzione AWS Lambda dalle istanze EC2 con python asyncio