2016-05-19 15 views
1

Ich habe versucht, eine lambda-Funktion in AWS aufzurufen. Ich habe es mit einem S3 Ereignis ausgelöst und unten ist mein Code. Ich könnte den Eimer und den Schlüssel aus den Ereignisdatensätzen holen. Ich habe versucht, die lambda function name als Teil des Aufrufs zu bekommen und konnte es nicht tun. Könnte ich den Funktionsnamen von dem Ereignis erhalten.Meine Python-Lambda-Funktion gibt den Lambda-Funktionsnamen nicht zurück

def getEnv(event): 
    key = urllib.unquote_plus(event['Records'][0]['s3']['object']['key']).decode('utf8') 
    bucket = event['Records'][0]['s3']['bucket']['name'] 
    lambdaName = event['lambdaName'][0] 

    environment = {'env': bucke, 'lambdaName': lambdaName} 
+0

Lambda-Funktionen haben in der Regel keinen Namen (obwohl Sie einen (-> '__name__') setzen können, wenn Sie möchten; das ist Python); Dies liegt daran, dass sie eher ein Ausdruck als eine Aussage sind. ('3 + 2' ist ein Ausdruck,' a = b' ist eine Aussage.) Daraus ergibt sich die Eigenschaft, dass die Lambda-Funktion jetzt nicht ihren Namen haben kann ('a = Lambda x: x * 2' ->' Lambda x: x * 2 'wird zuerst ausgewertet, dann wird es einem 'a' zugewiesen, oder (falls richtig verwendet, sollte dies die einzige Option sein), habe ich sowieso keine (' cubes = map (lambda x: x ** 3, li) '). – CodenameLambda

+3

@CodingLambdas: Hier geht es nicht um die * Python * Lambda-Syntax, sondern um den [AWS Lambda Service] (http://docs.aws.amazon.com/lambda/latest/dg/welcome.html). –

+0

@MartijnPieters Ah, ok. Das wusste ich nicht. – CodenameLambda

Antwort

Verwandte Themen