Sample
该文件名称默认是lambda_function.py
需要在Runtime settings指定handler:lambda_function.lambda_handler。
当然,文件名和函数名都可以改,只要在文件和handler中分别改成对应的即可。
import jsonprint('Loading function')def lambda_handler(event, context):#print("Received event: " + json.dumps(event, indent=2))print("value1 = " + event['key1'])print("value2 = " + event['key2'])print("value3 = " + event['key3'])return event['key1'] # Echo back the first key value#raise Exception('Something went wrong')
Lambda与S3协作
npm install --arch=x64 --platform=linux --target=12.13.0 sharpaws lambda create-function --function-name ShayneCreateThumbnail2 \--zip-file fileb://function.zip --handler index.handler --runtime nodejs12.x \--timeout 10 --memory-size 1024 \--role arn:aws:iam::875593617141:role/shayne-lambda-s3-roleaws lambda invoke --function-name ShayneCreateThumbnail2 --invocation-type Event \--cli-binary-format raw-in-base64-out \--payload file://inputFile.txt outputfile.txtaws lambda add-permission --function-name ShayneCreateThumbnail2 --principal s3.amazonaws.com \--statement-id s3invoke --action "lambda:InvokeFunction" \--source-arn arn:aws:s3:::shayne-chen \aws lambda get-policy --function-name ShayneCreateThumbnail2
inputFile.txt
{"Records":[{"eventVersion":"2.0","eventSource":"aws:s3","awsRegion":"us-east-1","eventTime":"1970-01-01T00:00:00.000Z","eventName":"ObjectCreated:Put","userIdentity":{"principalId":"AIDAJDPLRKLG7UEXAMPLE"},"requestParameters":{"sourceIPAddress":"127.0.0.1"},"responseElements":{"x-amz-request-id":"C3D13FE58DE4C810","x-amz-id-2":"FMyUVURIY8/IgAtTv8xRjskZQpcIZ9KG4V5Wp6S7S/JRWeUWerMUE5JgHvANOjpD"},"s3":{"s3SchemaVersion":"1.0","configurationId":"testConfigRule","bucket":{"name":"shayne-chen","ownerIdentity":{"principalId":"A3NL1KOZZKExample"},"arn":"arn:aws:s3:::shayne-chen"},"object":{"key":"HappyFace.jpg","size":512.6,"eTag":"3ed51f5b77ff256b51c23fd7b955f234","versionId":"zlN9Lv7Klg50g_7FmF6juEkooE3UHx6p"}}}]}
