2017-10-15 12 views
-2

je dois exécuter la fonction suivante ci-dessous sur le lambda AWS:fonction Python sur 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) 

Cependant l'erreur suivante apparaît et je ne peux pas résoudre:

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

La fonction originale a plus de valeurs qui prennent beaucoup de temps à cause de cela, je cours sur Lambda.

Sur l'ordinateur utilisant py subset_sum.py, cela fonctionne normalement.

+0

est 'subset_sum' la fonction de gestionnaire? – dashmug

+0

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

+0

S'il vous plaît montrer votre entière fonction Lambda. Si * est * votre fonction Lambda entière, alors vous devriez coder votre fonction pour recevoir des appels via un Handler. Voir: [Lambda Function Handler (Python)] (http://docs.aws.amazon.com/lambda/latest/dg/python-programming-model-handler-types.html). –

Répondre