ارتقاء تابع Lambda از Python 3.8 به Higher

Summarize this content to 400 words in Persian Lang
این راهنما شما را در فرآیند ارتقاء کد AWS Lambda Python از نسخه 3.8 به 3.11 راهنمایی می کند. در حالی که چندین رویکرد برای دستیابی به این وجود دارد، من روی یک روش تمرکز خواهم کرد: استقرار یک تابع جدید Lambda
دلیل این ارتقا این است که AWS Lambda پایتون 3.8 را در 14 اکتبر 2024 منسوخ خواهد کرد، مطابق با پایان عمر پایتون 3.8 (EOL) که برای اکتبر 2024 نیز برنامه ریزی شده است. [1]. مهاجرت به نسخه جدیدتر، پشتیبانی مداوم و دسترسی به آخرین ویژگی ها و به روز رسانی های امنیتی را تضمین می کند.
پس زمینه
تابع Lambda موجود ما از یک شی Get S3 است که یک استقرار موجود توسط AWS است. این کد پایتون با پایتون 3.8 مستقر شده است.
یک تابع Lambda جدید ایجاد کنید
اولین گزینه ای که بررسی خواهیم کرد، استقرار یک تابع جدید Lambda و به روز رسانی کد موجود برای سازگاری با Python 3.11 است. یکی از تغییرات عمده هنگام ارتقاء از پایتون 3.8 به پایتون 3.11 تغییر در نحوه عملکرد دستور چاپ است. در پایتون 3.8، چاپ یک عبارت بود، اما در پایتون 3.11، به یک تابع تبدیل شد. از آنجایی که پرینت معمولاً برای اشکال زدایی و ورود به سیستم استفاده می شود، اغلب در کد پایتون با آن مواجه می شوید. این تغییر مستلزم بهروزرسانی هر گونه بیانیه چاپ قدیمی برای فراخوانی عملکرد در نسخه جدید است.
تصویر زیر نمونه ای از تعریف تابع Lambda موجود است. متوجه خواهید شد که کد به عنوان یک نوع بسته “Zip” مستقر شده است.
در پایتون 3، دستور print از پایتون 2 با تابع print() جایگزین شد، به این معنی که باید از پرانتز در اطراف آنچه می خواهید چاپ کنید استفاده کنید. اگر می خواهید پیام خطای استثنا را چاپ کنید (مانند هنگام گرفتن یک استثنا)، می توانید خود شی استثنا را چاپ کنید.
در اینجا نحوه چاپ یک استثنا با استفاده از پایتون 3 آمده است:
import traceback
try:
# Code that might raise an exception
1 / 0 # This will raise a ZeroDivisionError
except Exception as e:
# Print the exception details
print(f”An error occurred: {e}”)
# Alternatively, you can also print the full traceback:
print(“Full traceback:”)
traceback.print_exc()
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
توضیح:در پایتون 3، e شیء استثنا در بلوک جز است. برای چاپ جزئیات آن، از چاپ استفاده کنید(f”An error occurred: {e}”). رشته f امکان درونیابی رشته را فراهم می کند و مقدار e را در رشته وارد می کند.traceback.print_exc() اگر اطلاعات دقیق تری برای اشکال زدایی می خواهید، ردیابی کامل استثنا را چاپ می کند.این روش مدرن برای مدیریت و چاپ خطاها در پایتون 3 است.
مرحله 1: از کد عملکرد موجود خود نسخه پشتیبان تهیه کنید
به عنوان یک اقدام احتیاطی با هر کاری که در فضای IT انجام می دهیم، خوب است که با یک نسخه پشتیبان شروع کنیم. در گوشه سمت راست بالای صفحه یک لیست کشویی “Action” وجود دارد. عنوان “Action” را فشار داده و “Download function zip” را انتخاب کنید.
سپس “Download Deployment package” را انتخاب می کنیم. با این کار یک فایل Zip با بسته استقرار اصلی و هر تغییر کدی که رخ داده است، از بین میرود. این فایل را در جایی ذخیره کنید که در آینده بتوانید آن را پیدا کنید، در صورتی که مشکلی وجود داشته باشد.
مرحله 2: یک نسخه جدید از کد خود ایجاد کنید
به توابع لامبدا بروید. در بالای صفحه، عملکردهای موجود خود را مشاهده خواهید کرد. ما یک تابع جدید با دکمه نارنجی “ایجاد تابع” در بالا سمت راست ایجاد خواهیم کرد.
در صفحه ایجاد، یک «نام تابع» جدید میدهیم، و «زمان اجرا» «پایتون 3.11» را انتخاب میکنیم و در این حالت از نقش موجود در تابع Lambda قبلی خود استفاده میکنیم، زیرا میخواهیم آن کد را کپی کنیم. سپس “ایجاد تابع” را در هر دو فشار دهید
تغییرات زمان اجرا به شرح زیر است
یک تابع جدید Lambda را اجرا کنید،
در مرحله بعد باید کد شما را به عنوان یک فایل Zip وارد کنیم یا اگر از کدی استفاده میکنید که نیازی به کتابخانههای پشتیبانی ندارد، میتوانید کد خود را مستقیماً به ویرایشگر اضافه کنید. در حالی که در حال تبدیل کد خود هستید، باید مطمئن شوید که تمام دستورات چاپی را به نسخه Python 3.11 یک چاپ تبدیل کرده اید.
پس از اینکه کد lambda_function.py خود را تغییر دادید تا همه تغییرات پایتون 3 را در بر بگیرد، باید یک کد پستی را آپلود کنید. اگر برای ایجاد یک فایل فشرده برای کتابخانههای پایتون که بخشی از ردپای پیشفرض AWS Lambda نیستند به کمک نیاز دارید، میتوانید مقاله زیر را دنبال کنید.
https://docs.aws.amazon.com/lambda/latest/dg/python-package.html
همچنین اگر اجرای کد شما کمی طول می کشد و پیام مهلت زمانی دریافت می کنید، فراموش نکنید که تنظیمات اولیه را ویرایش کنید. پیش فرض برای لامبدا 3 ثانیه است
مرحله 3: کد خود را تست کنید
سپس عملکرد Lambda را با فشار دادن دکمه “Test” در صفحه “Code” برای عملکرد Lambda آزمایش می کنیم.
آزمایش خود را نامگذاری کنید و هر شیء داده JSON را که معمولاً کد خود را با آنها آزمایش می کنید، ارائه دهید. این به شما یک برگه نتایج اجرا می دهد که می توانید کد خود را از آن اشکال زدایی کنید.
امیدواریم این کار با ایجاد یک تابع Lambda جدید و تغییر تریگر برای فراخوانی تابع Lambda جدید به انتقال تابع Lambda به پایتون 3 کمک کند.
نتیجه گیری:
ارتقاء نسخه پایتون در یک تابع AWS Lambda برای به روز ماندن با ویژگیهای جدید، بهبود عملکرد و بهروزرسانیهای امنیتی مفید است. با این حال، نیاز به آزمایش دقیق پایگاه کد، وابستگیها و پیکربندی لامبدا دارد تا از تغییر تغییرات جلوگیری شود و از انتقال یکپارچه اطمینان حاصل شود. پیروی از بهترین شیوهها مانند استفاده از نسخه لامبدا، آزمایش در محیط مرحلهبندی، و نظارت بر عملکرد پس از ارتقا به اطمینان از موفقیت آمیز بودن ارتقا و ارائه مزایای مورد انتظار کمک میکند.
این راهنما شما را در فرآیند ارتقاء کد AWS Lambda Python از نسخه 3.8 به 3.11 راهنمایی می کند. در حالی که چندین رویکرد برای دستیابی به این وجود دارد، من روی یک روش تمرکز خواهم کرد: استقرار یک تابع جدید Lambda
دلیل این ارتقا این است که AWS Lambda پایتون 3.8 را در 14 اکتبر 2024 منسوخ خواهد کرد، مطابق با پایان عمر پایتون 3.8 (EOL) که برای اکتبر 2024 نیز برنامه ریزی شده است. [1]. مهاجرت به نسخه جدیدتر، پشتیبانی مداوم و دسترسی به آخرین ویژگی ها و به روز رسانی های امنیتی را تضمین می کند.
پس زمینه
تابع Lambda موجود ما از یک شی Get S3 است که یک استقرار موجود توسط AWS است. این کد پایتون با پایتون 3.8 مستقر شده است.
یک تابع Lambda جدید ایجاد کنید
اولین گزینه ای که بررسی خواهیم کرد، استقرار یک تابع جدید Lambda و به روز رسانی کد موجود برای سازگاری با Python 3.11 است. یکی از تغییرات عمده هنگام ارتقاء از پایتون 3.8 به پایتون 3.11 تغییر در نحوه عملکرد دستور چاپ است. در پایتون 3.8، چاپ یک عبارت بود، اما در پایتون 3.11، به یک تابع تبدیل شد. از آنجایی که پرینت معمولاً برای اشکال زدایی و ورود به سیستم استفاده می شود، اغلب در کد پایتون با آن مواجه می شوید. این تغییر مستلزم بهروزرسانی هر گونه بیانیه چاپ قدیمی برای فراخوانی عملکرد در نسخه جدید است.
تصویر زیر نمونه ای از تعریف تابع Lambda موجود است. متوجه خواهید شد که کد به عنوان یک نوع بسته “Zip” مستقر شده است.
در پایتون 3، دستور print از پایتون 2 با تابع print() جایگزین شد، به این معنی که باید از پرانتز در اطراف آنچه می خواهید چاپ کنید استفاده کنید. اگر می خواهید پیام خطای استثنا را چاپ کنید (مانند هنگام گرفتن یک استثنا)، می توانید خود شی استثنا را چاپ کنید.
در اینجا نحوه چاپ یک استثنا با استفاده از پایتون 3 آمده است:
import traceback
try:
# Code that might raise an exception
1 / 0 # This will raise a ZeroDivisionError
except Exception as e:
# Print the exception details
print(f"An error occurred: {e}")
# Alternatively, you can also print the full traceback:
print("Full traceback:")
traceback.print_exc()
توضیح:
در پایتون 3، e شیء استثنا در بلوک جز است. برای چاپ جزئیات آن، از چاپ استفاده کنید(f"An error occurred: {e}").
رشته f امکان درونیابی رشته را فراهم می کند و مقدار e را در رشته وارد می کند.traceback.print_exc()
اگر اطلاعات دقیق تری برای اشکال زدایی می خواهید، ردیابی کامل استثنا را چاپ می کند.
این روش مدرن برای مدیریت و چاپ خطاها در پایتون 3 است.
مرحله 1: از کد عملکرد موجود خود نسخه پشتیبان تهیه کنید
به عنوان یک اقدام احتیاطی با هر کاری که در فضای IT انجام می دهیم، خوب است که با یک نسخه پشتیبان شروع کنیم. در گوشه سمت راست بالای صفحه یک لیست کشویی “Action” وجود دارد. عنوان “Action” را فشار داده و “Download function zip” را انتخاب کنید.
سپس “Download Deployment package” را انتخاب می کنیم. با این کار یک فایل Zip با بسته استقرار اصلی و هر تغییر کدی که رخ داده است، از بین میرود. این فایل را در جایی ذخیره کنید که در آینده بتوانید آن را پیدا کنید، در صورتی که مشکلی وجود داشته باشد.
مرحله 2: یک نسخه جدید از کد خود ایجاد کنید
به توابع لامبدا بروید. در بالای صفحه، عملکردهای موجود خود را مشاهده خواهید کرد. ما یک تابع جدید با دکمه نارنجی “ایجاد تابع” در بالا سمت راست ایجاد خواهیم کرد.
در صفحه ایجاد، یک «نام تابع» جدید میدهیم، و «زمان اجرا» «پایتون 3.11» را انتخاب میکنیم و در این حالت از نقش موجود در تابع Lambda قبلی خود استفاده میکنیم، زیرا میخواهیم آن کد را کپی کنیم. سپس “ایجاد تابع” را در هر دو فشار دهید
تغییرات زمان اجرا به شرح زیر است
یک تابع جدید Lambda را اجرا کنید،
در مرحله بعد باید کد شما را به عنوان یک فایل Zip وارد کنیم یا اگر از کدی استفاده میکنید که نیازی به کتابخانههای پشتیبانی ندارد، میتوانید کد خود را مستقیماً به ویرایشگر اضافه کنید. در حالی که در حال تبدیل کد خود هستید، باید مطمئن شوید که تمام دستورات چاپی را به نسخه Python 3.11 یک چاپ تبدیل کرده اید.
پس از اینکه کد lambda_function.py خود را تغییر دادید تا همه تغییرات پایتون 3 را در بر بگیرد، باید یک کد پستی را آپلود کنید. اگر برای ایجاد یک فایل فشرده برای کتابخانههای پایتون که بخشی از ردپای پیشفرض AWS Lambda نیستند به کمک نیاز دارید، میتوانید مقاله زیر را دنبال کنید.
https://docs.aws.amazon.com/lambda/latest/dg/python-package.html
همچنین اگر اجرای کد شما کمی طول می کشد و پیام مهلت زمانی دریافت می کنید، فراموش نکنید که تنظیمات اولیه را ویرایش کنید. پیش فرض برای لامبدا 3 ثانیه است
مرحله 3: کد خود را تست کنید
سپس عملکرد Lambda را با فشار دادن دکمه “Test” در صفحه “Code” برای عملکرد Lambda آزمایش می کنیم.
آزمایش خود را نامگذاری کنید و هر شیء داده JSON را که معمولاً کد خود را با آنها آزمایش می کنید، ارائه دهید. این به شما یک برگه نتایج اجرا می دهد که می توانید کد خود را از آن اشکال زدایی کنید.
امیدواریم این کار با ایجاد یک تابع Lambda جدید و تغییر تریگر برای فراخوانی تابع Lambda جدید به انتقال تابع Lambda به پایتون 3 کمک کند.
نتیجه گیری:
ارتقاء نسخه پایتون در یک تابع AWS Lambda برای به روز ماندن با ویژگیهای جدید، بهبود عملکرد و بهروزرسانیهای امنیتی مفید است. با این حال، نیاز به آزمایش دقیق پایگاه کد، وابستگیها و پیکربندی لامبدا دارد تا از تغییر تغییرات جلوگیری شود و از انتقال یکپارچه اطمینان حاصل شود. پیروی از بهترین شیوهها مانند استفاده از نسخه لامبدا، آزمایش در محیط مرحلهبندی، و نظارت بر عملکرد پس از ارتقا به اطمینان از موفقیت آمیز بودن ارتقا و ارائه مزایای مورد انتظار کمک میکند.