Amazon S3 Object Lambda – Community Dev

لامبدا شیء چیست؟
S3 Object Lambda یک ویژگی جدید است که به شما امکان می دهد قبل از ارسال به برنامه شما ، نحوه استفاده از داده های آمازون S3 را سفارشی کنید. این بدان معنی است که شما می توانید بدون نیاز به تغییر برنامه خود ، داده ها را با استفاده از کد خود پردازش و تغییر دهید. این کار با استفاده از توابع AWS Lambda کار می کند تا به طور خودکار داده ها را هر بار که از S3 بدست می آید پردازش کند. به این ترتیب ، شما می توانید به راحتی نسخه ها یا نمایش های مختلف از داده های خود را بدون تغییر برنامه خود ایجاد کنید ، و می توانید نحوه پردازش داده ها را در هر زمان که نیاز دارید به روز کنید.
نحوه تنظیم S3 Object Lambda
مرحله 1: اول ، ما یک نقطه دسترسی برای سطل S3 ایجاد خواهیم کرد
- به سطل S3 خود و نقاط دسترسی باز بروید
- ما باید یک نقطه دسترسی به سطل ایجاد کنیم
- نامی را که به نقطه دسترسی دارید و اینترنت را در Origin Network انتخاب کنید
مرحله 2: ایجاد لامبدا
import boto3
import requests
import pandas as pd
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
columns = original_object.split('\r\n')[0].replace('"','').replace('\ufeff','').split(',')
user_data = []
for data in original_object.split('\r\n')[1:-1] :
user_data.append(data.replace('"','').split(','))
user_df = pd.DataFrame(user_data,columns=columns)
user_df.drop(columns=['password'],inplace=True)
# Write object back to S3 Object Lambda
s3 = boto3.client('s3')
s3.write_get_object_response(
Body=bytes(user_df.to_csv(index=False),encoding = 'utf-8'),
RequestRoute=request_route,
RequestToken=request_token)
return {'status_code': 200}
مرحله 3: از منوی سمت چپ S3 نقاط دسترسی Lambda Object را ایجاد کنید
- روی “ایجاد نقطه دسترسی Lambda Object Lambda” کلیک کنید
- نقطه دسترسی سطل خود را انتخاب کنید
- همه تحول را انتخاب کنید
- Lambda را که در بالا ایجاد کرده اید انتخاب کنید
- چیزهای دیگر را به صورت پیش فرض بگذارید.
مرحله 4: با استفاده از BOTO3 شی دریافت کنید
داده های CSV: داده های زیر را کپی کرده و آن را در پرونده CSV با نام user_daily_data.csv ذخیره کنید
id,email,username,password,name__firstname,name__lastname,phone,__v,address__geolocation__lat,address__geolocation__long,address__city,address__street,address__number,address__zipcode
1,sarahreyes@example.org,cameronrobert,&RnzRNczN6,Tracy,Doyle,9-087-607-2043,0,-81.123854,-158.066853,Thompsonland,166 Hammond Stravenue,8812,56265
2,amandawallace@example.net,lambertfranklin,$BQGXjt49y,Christopher,Hansen,6-507-543-5500,0,-56.4904755,-47.427614,Pageburgh,716 Leonard Haven Suite 277,8776,42149
import boto3
import pandas as pd
s3 = boto3.client('s3')
print('Original object from the S3 bucket:')
original = s3.get_object(
Bucket="your_bucket_name",
Key='user_daily_data.csv')
data_str = original['Body'].read().decode('utf-8')
print(data_str)
print('Object processed by S3 Object Lambda:')
transformed = s3.get_object(
Bucket="bucket_access_point",
Key='user_daily_data.csv')
data_str = transformed['Body'].read().decode('utf-8')
print(data_str)
BIO نویسنده:
Yashupadhyaya یک مهندس داده های معتبر AWS با بیش از 2.5 سال تجربه در معماری و بهینه سازی خطوط لوله داده با استفاده از خدمات AWS و لاجورد است. Yashupadhyaya متخصص در راه حل های مبتنی بر ابر ، در فن آوری هایی مانند پایتون ، پیسپارک ، جریان هوا ، DBT و فلاسک مهارت دارد. وی دارای سابقه اثبات شده در زمینه اعمال AWS و خدمات لاجورد برای ساخت سیستم عامل های تجزیه و تحلیل مقیاس پذیر و ساده سازی فرآیندهای مصرف داده است. وی با اشتیاق به تصمیم گیری در مورد داده های محور ، او همچنان در قلمرو محیط های چند ابر و ابزارهای منبع باز نوآوری می کند.