Sample

该文件名称默认是lambda_function.py
需要在Runtime settings指定handler:lambda_function.lambda_handler。
当然,文件名和函数名都可以改,只要在文件和handler中分别改成对应的即可。

  1. import json
  2. print('Loading function')
  3. def lambda_handler(event, context):
  4. #print("Received event: " + json.dumps(event, indent=2))
  5. print("value1 = " + event['key1'])
  6. print("value2 = " + event['key2'])
  7. print("value3 = " + event['key3'])
  8. return event['key1'] # Echo back the first key value
  9. #raise Exception('Something went wrong')

Lambda与S3协作

  1. npm install --arch=x64 --platform=linux --target=12.13.0 sharp
  2. aws lambda create-function --function-name ShayneCreateThumbnail2 \
  3. --zip-file fileb://function.zip --handler index.handler --runtime nodejs12.x \
  4. --timeout 10 --memory-size 1024 \
  5. --role arn:aws:iam::875593617141:role/shayne-lambda-s3-role
  6. aws lambda invoke --function-name ShayneCreateThumbnail2 --invocation-type Event \
  7. --cli-binary-format raw-in-base64-out \
  8. --payload file://inputFile.txt outputfile.txt
  9. aws lambda add-permission --function-name ShayneCreateThumbnail2 --principal s3.amazonaws.com \
  10. --statement-id s3invoke --action "lambda:InvokeFunction" \
  11. --source-arn arn:aws:s3:::shayne-chen \
  12. aws lambda get-policy --function-name ShayneCreateThumbnail2

inputFile.txt

  1. {
  2. "Records":[
  3. {
  4. "eventVersion":"2.0",
  5. "eventSource":"aws:s3",
  6. "awsRegion":"us-east-1",
  7. "eventTime":"1970-01-01T00:00:00.000Z",
  8. "eventName":"ObjectCreated:Put",
  9. "userIdentity":{
  10. "principalId":"AIDAJDPLRKLG7UEXAMPLE"
  11. },
  12. "requestParameters":{
  13. "sourceIPAddress":"127.0.0.1"
  14. },
  15. "responseElements":{
  16. "x-amz-request-id":"C3D13FE58DE4C810",
  17. "x-amz-id-2":"FMyUVURIY8/IgAtTv8xRjskZQpcIZ9KG4V5Wp6S7S/JRWeUWerMUE5JgHvANOjpD"
  18. },
  19. "s3":{
  20. "s3SchemaVersion":"1.0",
  21. "configurationId":"testConfigRule",
  22. "bucket":{
  23. "name":"shayne-chen",
  24. "ownerIdentity":{
  25. "principalId":"A3NL1KOZZKExample"
  26. },
  27. "arn":"arn:aws:s3:::shayne-chen"
  28. },
  29. "object":{
  30. "key":"HappyFace.jpg",
  31. "size":512.6,
  32. "eTag":"3ed51f5b77ff256b51c23fd7b955f234",
  33. "versionId":"zlN9Lv7Klg50g_7FmF6juEkooE3UHx6p"
  34. }
  35. }
  36. }
  37. ]
  38. }