تسلط بر توابع با دوام لاجورد: ابرقدرت پنهان برنامه های بدون سرور

مقدمه
آیا تا به حال یک عملکرد لاجورد ساخته اید و خود را تعجب کرده اید که چگونه می توانید گردش کار پیچیده را کنترل کنید ، حالت را حفظ کنید یا هماهنگی های چندگانه عملکرد را هماهنگ کنید؟ اگر چنین است ، شما تنها نیستید. عملکردهای سنتی لاجورد با طراحی بدون تابعیت هستند ، اما اگر به یک فرآیند طولانی مدت یا یک گردش کار ارکستر نیاز دارید ، چه می کنید؟ اینجاست که عملکردهای بادوام لاجورد وارد می شوند!
توابع بادوام با فعال کردن گردش کار حالت در یک محیط بدون سرور ، توابع لاجورد را گسترش می دهد. آنها به شما امکان می دهند گردش های کاری را با استفاده از کد تعریف کنید و مدیریت تعامل پیچیده بین توابع را آسان تر می کند. در این وبلاگ ، ما به عمق عملکردهای بادوام شیرجه می شویم ، توانایی های آنها را کشف می کنیم و یک نمونه عملی را طی می کنیم.
عملکردهای بادوام لاجورد چیست؟
توابع با دوام لاجورد ، گسترش توابع لاجورد است که به شما امکان می دهد گردش کار حالت و بدون سرور را بسازید. آنها از چارچوب کار با دوام استفاده می شوند ، که به شما امکان می دهد گردش کار را به جای استفاده از برنامه های منطقی JSON یا YAML تعریف کنید.
ویژگی های کلیدی:
اجرای حالت: توابع می توانند وضعیت خود را در سراسر اعدام ها حفظ کنند.
ارکستراسیون: توابع بادوام به شما امکان می دهد گردش کار را با استفاده از کد به جای ارکستراتورهای خارجی تعریف کنید.
فرآیندهای طولانی مدت: به راحتی کارهای پس زمینه ، انتظار برای ورودی های خارجی یا زمان بندی را انجام دهید.
قابلیت اطمینان: اگر یک تابع خراب شود یا مجدداً راه اندازی شود ، می تواند از جایی که خارج شده است از سر گرفته شود.
الگوهای داخلی: پشتیبانی از زنجیره ای عملکرد ، فن-خارج/فن ، ASYNC HTTP API و موارد دیگر.
الگوهای توابع بادوام
توابع با دوام لاجورد چندین الگوی قدرتمند را برای رسیدگی به گردش کار معرفی می کند. بیایید برخی از رایج ترین آنها را کشف کنیم:
1⃣ زنجیره ای عملکرد
این الگوی به یک تابع اجازه می دهد تا دیگری را در یک دنباله فراخوانی کند ، جایی که خروجی یک عملکرد به ورودی بعدی تبدیل می شود.
از Azure.dound_functions واردات با استفاده
Async def orchestrator_function (زمینه: با دوامورچستراسیون context):
نتیجه 1 = در انتظار متن. call_activity (“ActivityFunction1” ، “input1”)
نتیجه 2 = در انتظار متن. call_activity (“ActivityFunction2” ، نتیجه 1)
نتیجه بازگشت 2
2 ⃣ fan-out/fan-in
مفید است که چندین کارکرد نیاز به اجرای موازی و جمع آوری نتایج داشته باشد.
Async def orchestrator_function (زمینه: با دوامورچستراسیون context):
کارها = []برای من در محدوده (5):
Tasks.Append (Context.Call_activity (“ActivityFunction” ، I))
نتایج = در انتظار متن. task_all (کارها)
مبلغ بازگشت (نتایج)
3⃣ async http apis
این الگوی زمانی مفید است که می خواهید بلافاصله هنگام ادامه اجرای در پس زمینه ، یک پاسخ را برگردانید.
3⃣ async http apis
این الگوی زمانی مفید است که می خواهید بلافاصله هنگام ادامه اجرای در پس زمینه ، یک پاسخ را برگردانید.
مورد استفاده در دنیای واقعی: پردازش بارگذاری تصویر
بیایید بگوییم که شما در حال ساخت یک سیستم پردازش تصویر هستید که چندین تحول (تغییر اندازه ، علامت ، کمپرس) را در یک تصویر بارگذاری شده اعمال می کند. یک عملکرد بادوام می تواند کل گردش کار را ارکستر کند:
درخواست بارگذاری تصویر را دریافت کنید.
تغییر اندازه تصویر.
یک علامت علامت بمالید.
تصویر را فشرده کنید.
تصویر نهایی را در فضای ذخیره سازی لاجورد ذخیره کنید.
در اینجا چگونه ممکن است یک عملکرد ارکستراتور به نظر برسد:
Async def orchestrator_function (زمینه: با دوامورچستراسیون context):
image_url = context.get_input ()
ranized_image = منتظر زمینه. call_activity (“تغییر اندازه” ، image_url)
watermarked_image = انتظار متن. call_activity (“Applywatermark” ، rised_Image)
Compressed_Image = انتظار متن. call_activity (“CompressImage” ، watermarked_image)
در انتظار متن. call_activity (“savetoblobstorage” ، compressed_image)
بازگشت Compressed_Image
هر عملکرد به طور مستقل اجرا می شود و از مدولار بودن و مقیاس پذیری اطمینان می یابد.
استفاده از عملکردهای بادوام در لاجورد
مرحله 1: توابع لاجورد ابزارهای اصلی را نصب کنید
NPM نصب -g azure-functions-core-tools@4-unsafe-perm
مرحله 2: یک پروژه توابع بادوام ایجاد کنید
FUNCIN INIT INITONAL-BATONAL-Functions-Project-Worker-Runtime Python
CD با استفاده از بادام
مرحله 3: یک عملکرد ارکستراسیون اضافه کنید
عملکرد جدید -الگوی “توابع با دوام ارکستر” -OrchestratorFunction نام
مرحله 4: استقرار به لاجورد
Function Azure FunctionApp انتشار
پایان
توابع با دوام لاجورد یک تغییر دهنده بازی برای برنامه های بدون سرور است که به گردش کار دولتی نیاز دارند. این که آیا شما در حال انجام فرآیندهای طولانی ، ارکستراسیون گردش کار یا اعدام های موازی هستید ، عملکردهای بادوام ضمن حفظ مزایای محاسبات بدون سرور ، پیچیدگی را ساده می کنند.
آیا شما آماده هستید تا عملکردهای بادوام لاجورد را امتحان کنید؟ امروز اولین گردش کار خود را شروع کنید!