Перейти к содержимому

S3 Object Lambda Demo | Access points | S3

CloudDeepDive

0:00 / 0:00

S3 Object Lambda Demo | Access points | S3

1 833 просмотра · 5 лет назад
CloudDeepDive
5,02 тыс. подписчиков
1 833 просмотра · 5 лет назад
Introducing Amazon S3 Object Lambda – Use Your Code to Process Data as It Is Being Retrieved from S3. Commands - sudo yum update -y sudo yum install python3 python3-pip -y sudo pip3 install --upgrade pip pip install --upgrade pip mkdir python pip install --target python requests pip install --target python boto3 pip install --target python requests --upgrade pip install --target python boto3 --upgrade zip -r importModules.zip python Change Bucket name aws s3 cp importModules.zip s3://bucketName/importModules.zip --region us-east-1 aws lambda publish-layer-version --layer-name importModulesLayer --description "requests + boto3 modules" --content S3Bucket=bucketName,S3Key=importModules.zip --compatible-runtimes python3.6 python3.7 python3.8 Replace Lambda function name and arn aws lambda update-function-configuration --function-name LambdaFunctionName --layers arn:aws:lambda:us-east-1:11111111111111:layer:importModulesLayer:1 Retrieve object using S3 Object Lambda Function (Change ARN ) aws s3api get-object --bucket arn:aws:s3-object-lambda:us-east-1:11111111111111:accesspoint/test1 --key demo.txt demo.txt Retrieve object using S3 AccesPoint (Change ARN with your S3 access point ARN) aws s3api get-object --bucket arn:aws:s3:us-east-1:11111111111111:accesspoint/s3accesspoint --key demo.txt demo1.txt Labmda Code - import boto3 import requests def lambda_handler(event, context): print(event) object_get_context = event["getObjectContext"] request_route = object_get_context["outputRoute"] request_token = object_get_context["outputToken"] s3_url = object_get_context["inputS3Url"] Get object from S3 response = requests.get(s3_url) original_object = response.content.decode('utf-8') Transform object transformed_object = original_object.upper() Write object back to S3 Object Lambda s3 = boto3.client('s3') s3.write_get_object_response( Body=transformed_object, RequestRoute=request_route, RequestToken=request_token) return {'status_code': 200}