2017-10-15 2 views
-2

ich die folgende Funktion unten auf dem Lambda-AWS laufen muß:Python-Funktion auf AWS Lambda

def subset_sum(numbers, target, partial=[]): 
    s = sum(partial) 

# check if the partial sum is equals to target 
if s == target: 
    print("sum(%s)=%s" % (partial, target)) 
if s >= target: 
    return # if we reach the number why bother to continue 

for i in range(len(numbers)): 
    n = numbers[i] 
    remaining = numbers[i + 1:] 
    subset_sum(remaining, target, partial + [n]) 

if __name__ == "__main__": 
    subset_sum([1,2,3], 5) 

jedoch die folgenden Fehler angezeigt und ich kann nicht lösen:

{ 
    "errorMessage": "'>=' not supported between instances of 'int' and 'LambdaContext'", 
    "errorType": "TypeError", 
    "stackTrace": [ 
    [ 
     "/var/task/lambda_function.py", 
     7, 
     "subset_sum", 
     "if s >= target:" 
    ] 
    ] 
} 

Die ursprüngliche Funktion hat mehr Werte, die lange brauchen, deswegen laufe ich auf Lambda.

Auf dem Computer mit py subset_sum.py funktioniert es normal.

+0

Ist 'Ihre Handler-Funktion subset_sum'? – dashmug

+0

Bitte lesen Sie http://docs.aws.amazon.com/lambda/latest/dg/python-programming-model-handler-types.html. – dashmug

+0

Bitte zeigen Sie Ihre gesamte Lambda-Funktion an. Wenn das Ihre gesamte Lambda-Funktion ist, sollten Sie Ihre Funktion so kodieren, dass sie Anrufe über einen Handler empfängt. Siehe: [Lambda-Funktionshandler (Python)] (http://docs.aws.amazon.com/lambda/latest/dg/python-programming-model-handler-types.html). –

Antwort