هنگام مهاجرت به خارج از IBM Cloud Functions، IBM Cloud Code Engine یکی از اهداف احتمالی استقرار است. Code Engine برنامه ها، مشاغل و (به تازگی عملکرد) را ارائه می دهد که می توانید (یا نیاز دارید) از آنها انتخاب کنید. در این پست، نکاتی را در مورد نحوه کار با توابع Code Engine ارائه می دهیم و نکات و ترفندهایی را به اشتراک می گذاریم.
IBM Cloud Code Engine یک پلت فرم کاملاً مدیریت شده و بدون سرور برای (نه تنها) اجرای بارهای کاری کانتینری شما. این دارد از مارس 2021 بسیار تکامل یافته است، وقتی پست وبلاگ را منتشر کردمانتقال کد توابع ابری به موتور کد" در سال 2021، فقط برنامهها و مشاغل Code Engine وجود داشت. در اوایل سال جاری، Code Engine پشتیبانی از توابع را اضافه کرد (Functions-as-a-Service یا FaaS).
در این پست، میخواهم نگاهی تازه به آن موضوع بیندازم و درباره گزینههای نحوه حرکت از آن بحث کنم توابع ابری آی بی ام به موتور کد.
برنامه ها، مشاغل و توابع
ویژگی های IBM Cloud Code Engine سه روش مختلف برای اجرای منطق کسب و کار شما:
- An نرم افزار یک فرآیند به طور مداوم اجرا می شود که به درخواست های HTTP پاسخ می دهد.
- A کار برای انجام یک کار اجرا می شود و سپس خاتمه می یابد.
- A تابع یک قطعه کد بدون حالت است که توسط یک درخواست HTTP فراخوانی می شود و پس از تولید یک پاسخ، خاتمه می یابد. علاوه بر این، مشاغل معمولاً به طور قابل توجهی طولانی تر از توابع اجرا می شوند ("پردازش دسته ای").
موارد بسیار بیشتری وجود دارد ویژگی هایی که به تمایز بین برنامه ها، مشاغل کمک می کند و توابع بهطور خلاصه، اگر میخواهید یک REST API ایجاد کنید یا یک برنامه وب با عملکرد Backend/Frontend اجرا کنید، برنامهها مناسب هستند. شما کنترل کاملی بر سرور HTTP و منابع آن دارید.
از سوی دیگر، مشاغل فرآیندهای طولانی مدتی هستند که نیازی به تعامل کاربر ندارند. آنها می توانند فعالیت های دسته ای معمولی، پردازش تجزیه و تحلیل یا حتی آموزش مدل هوش مصنوعی باشند.
در نهایت، توابع می توانند خیلی سریع به درخواست های HTTP ورودی واکنش نشان دهند. آنها موارد استفاده با تأخیر کم را به خوبی ارائه می کنند، مانند ادغام ربات های چت یا وبک هوک. برخلاف برنامه ها، شما سرور HTTP را تعریف و پیکربندی نمی کنید.
وقتی از Cloud Functions می آیید، ممکن است تجربه کرده باشید که تعداد زیادی وجود دارد از موارد پشتیبانی شده توسط Cloud Function استفاده کنید. به طور مشابه، یک تابع ممکن است ویژگی های مختلفی داشته باشد که بسته به مورد مهم هستند:
- فراخوانی یا زمان راهاندازی (شروع سرد) ممکن است مهم باشد که منجر به یک زمان پاسخ کلی کوتاه شود.
- در موارد دیگر، هزینه (صورتحساب) ممکن است عامل رقابتی باشد.
- سادگی و چابکی، ناشی از یک تابع به عنوان واحد توسعه و استقرار در یک فرآیند DevSecOps، برخی از پروژه ها را به سمت انتخاب توابع سوق می دهد.
اغلب، این ترکیبی از موارد فوق است که منجر به ترجیح افراد توابع (FaaS) بر سایر گزینه های زمان اجرا یا محاسبه می شود.
از توابع ابری تا موتور کد
هنگام انتقال از Cloud Functions به Code Engine، هنگام تصمیم گیری در مورد یک برنامه، یک کار یا یک عملکرد Code Engine باید ویژگی های عملکرد زیر در نظر گرفته شود:
- آیا برای فراخوانی کد به یک نقطه پایانی http نیاز است؟
- آیا پردازش توسط یک رویداد آغاز می شود؟
- چه زبان برنامه نویسی برای تابع موجود استفاده می شود و کتابخانه های مورد نیاز چقدر است؟
- پردازش چقدر طول می کشد، چه منابع محاسباتی مورد نیاز است، آیا پردازش موازی مورد نظر است؟
راهنما انتقال توابع ابری آیبیام به موتور کد دارای یک نمای کلی با برنامه Code Engine، ویژگی های شغل و عملکرد است. آنها به شما کمک می کنند تا بهترین نهاد را برای حجم کاری موجود خود انتخاب کنید. علاوه بر این، جریان محدودیت های عملکرد موتور کد و کلی محدودیت ها و سهمیه ها برای Code Engine باید در نظر گرفته شود. بخش انتقال عملکردهای IBM Cloud Functions به عملکردهای موتور کد سؤالات متداول ممکن است به شما در تصمیم گیری در مورد نحوه مهاجرت کمک کند.
نکات و ترفندهایی برای عملکردهای Code Engine
نکات و ترفندهای زیر بر اساس تجربیات من در انتقال کدهای موجود از توابع ابری به توابع کد موتور است. آنها با استفاده از تست های محلی برای اجرای عملکردهای مشابه در ترکیب توابع و کارهای Code Engine و طراحی API های یکپارچه با استفاده از متغیرهای سیستم Code Engine به کاهش چرخه های استقرار کمک می کنند.
تست محلی توابع
برنامه ها برنامه های وب معمولی هستند، مشاغل مانند اسکریپت ها هستند و هر دو را می توان به روش های مختلف به صورت محلی آزمایش کرد. از آنجایی که توابع قطعه کد هستند، برای تبدیل آنها به برنامه به مقداری بسته بندی نیاز است. رویکرد زیر تاکنون به خوبی به من خدمت کرده است.
با کد تابع در یک زیرشاخه "func"، من از کد پوششی Python یا Node.js که در زیر نشان داده شده است استفاده می کنم و آن را در فهرست اصلی قرار می دهم. در آنجا، من همچنین فایل هایی با تنظیمات آزمایشی را به عنوان اشیاء JSON نگهداری می کنم. مشابه آنچه توسط Code Engine به تابع در فراخوانی ارسال می شود. برای تست، wrapper را به همراه فایل پیکربندی به عنوان پارامتر اجرا می کنم. Wrapper های Python و Node.js در زیر نشان داده شده است:
# syntax: python wrapper.py params.json
# import the Code Engine function: func/__main__.py
from func.__main__ import main
import sys, json
if __name__ == "__main__":
# open file, read JSON config
with open(str(sys.argv[1])) as confFile:
params=json.load(confFile)
# invoke the CE function and print the result
print(main(params))
// syntax: node wrapper.js params.json
// require the Code Engine function: func/main.js
var func=require('./func/main.js')
// read the file with function parameters
const fs = require("fs");
const data = fs.readFileSync(process.argv[2]);
// invoke the CE function and log the result
console.log(func.main(JSON.parse(data)));
توابع کار مانند
گاهی اوقات، ممکن است به نقطه پایانی HTTP یک تابع و احتمالاً زمان اجرای طولانیتر یک کار نیاز داشته باشید. در آن صورت، هم یک تابع و هم یک شغل ایجاد کنید. سپس، از Code Engine API برای ایجاد یک کار اجرا از داخل تابع در این رویکرد ترکیبی، تابع میتواند از طریق نقطه پایانی HTTP فراخوانی شود و پس از شروع اجرای کار خاتمه مییابد. یک شغل می تواند تا 24 ساعت ادامه داشته باشد و از مزایای آن بهره مند شود قابلیت های پردازش کار موازی در Code Engine. می توانید نمونه ای از پیاده سازی این الگو را در قسمت پیدا کنید نمونه کدهای موتور کد.
متغیرهای محیطی و طراحی API
برای طراحی API و فضای نام توابع خود، می توانید از آن استفاده کنید متغیرهای محیطی تزریق شده توسط موتور کد پسندیدن __ce_path
و __ce_method
. اولی مولفه مسیر URL درخواستی مانند "/object" را نگه می دارد و دومی دارای روش HTTP مانند GET یا POST است. با روشن کردن مقادیر ارائه شده برای این متغیرها، می توانید چندین تابع API را از همان تابع Code Engine ارائه دهید. مزیت یک URL پایه واحد است.
بسته به مدیریت پروژه و کد خود، حتی ممکن است بخواهید این رویکرد را با جداسازی هر یک از اجرای تابع API در فایل خود ترکیب کنید - مشابه رویکرد wrapper نشان داده شده در بالا.
نتیجه گیری
توابع ابری آی بی ام موارد استفاده و ویژگی های زیادی دارند، بنابراین هیچ نگاشت ساده ای برای یک موجودیت Code Engine خاص (یعنی برنامه، کار یا عملکرد) وجود ندارد. با مقایسه ویژگی های یک تابع موجود (توابع ابری) با ویژگی های موجودیت های Code Engine، می توانید بهترین تناسب را انتخاب کنید. در بسیاری از موارد، یک تابع Code Engine ممکن است انتخاب خوبی باشد. برای این موارد، نکات و ترفندهایی را به اشتراک گذاشتیم که می توانید برای پروژه Functions-as-a-Service خود با Code Engine از آنها استفاده کنید.
برای شروع از مستندات زیر IBM Cloud Code Engine استفاده کنید:
اگر بازخورد، پیشنهاد یا سؤالی در مورد این پست دارید، لطفاً در توییتر با من تماس بگیرید (@data_henrik)، ماستودون (@data_henrik@mastodon.social) و یا لینک.
موارد بیشتر از Cloud
خبرنامه های آی بی ام
خبرنامهها و بهروزرسانیهای موضوعی ما را دریافت کنید که جدیدترین رهبری فکری و بینش را در مورد روندهای نوظهور ارائه میدهد.
مشترک شدن در حال حاضر
خبرنامه های بیشتر
- محتوای مبتنی بر SEO و توزیع روابط عمومی. امروز تقویت شوید.
- PlatoData.Network Vertical Generative Ai. به خودت قدرت بده دسترسی به اینجا.
- PlatoAiStream. هوش وب 3 دانش تقویت شده دسترسی به اینجا.
- PlatoESG. کربن ، CleanTech، انرژی، محیط، خورشیدی، مدیریت پسماند دسترسی به اینجا.
- PlatoHealth. هوش بیوتکنولوژی و آزمایشات بالینی. دسترسی به اینجا.
- منبع: https://www.ibm.com/blog/how-to-move-from-ibm-cloud-functions-to-ibm-code-engine/
- : دارد
- :است
- :نه
- $UP
- 1
- 200
- 2021
- 2022
- 2023
- 24
- 28
- 29
- 300
- 31
- 400
- 49
- 9
- a
- درباره ما
- بالاتر
- دسترسی
- مطابق
- حساب
- جمع آوری شده
- در میان
- اقدامات
- فعالیت ها
- اضافه
- اضافی
- علاوه بر این
- به تصویب رسید
- پذیرندگان
- تبلیغات
- افریقایی
- پس از
- فرز
- AI
- هدف
- معرفی
- اجازه دادن
- در امتداد
- همچنین
- am
- امریکایی
- مقدار
- amp
- an
- علم تجزیه و تحلیل
- و
- پاسخ
- هر
- API
- رابط های برنامه کاربردی
- نرم افزار
- کاربرد
- برنامه های کاربردی
- روش
- برنامه های
- هستند
- مقاله
- AS
- At
- خواص
- استرالیا
- تأیید اعتبار
- تصدیق
- نویسنده
- مجوز
- به عقب
- بانکداری
- پایه
- مستقر
- BE
- زیرا
- بوده
- در زیر
- سود
- بهترین
- بهترین شیوه
- میان
- بزرگ
- صدور صورت حساب
- بلاگ
- وبلاگ ها
- آبی
- هر دو
- کسب و کار
- دکمه
- by
- نام
- CAN
- می توانید دریافت کنید
- نمی توان
- قابلیت های
- کربن
- کارت
- کارت ها
- مورد
- موارد
- CAT
- دسته بندی
- ایجاد می شود
- مشخصات
- chatbot
- بررسی
- انتخاب
- محافل
- CIS
- کلاس
- مشتری
- مشتریان
- ابر
- ابر بانکی
- رمز
- سرد
- رنگ
- ترکیب
- ترکیب
- ترکیب
- ترکیب
- آینده
- مقایسه
- رقابتی
- موافق
- جزء
- محاسبه
- متمرکز
- انجام
- پیکر بندی
- در نظر می گیرد
- کنسول
- ظرف
- به طور مستمر
- ادامه دادن
- به طور مداوم
- کنتراست
- کنترل
- هزینه
- میتوانست
- سادگی
- ایجاد
- ایجاد
- CSS
- جاری
- سفارشی
- مشتریان
- برش
- چرخه
- داده ها
- تاریخ
- دسامبر
- تصمیم گیری
- تصمیم گیری
- به طور پیش فرض
- تعريف كردن
- تعاریف
- ارائه
- بستگی دارد
- گسترش
- گسترش
- شرح
- طراحی
- مطلوب
- دقیق
- مشخص کردن
- توسعه دهنده
- پروژه
- مختلف
- بحث و تبادل نظر
- گفتگو
- تمیز دادن
- do
- مستندات
- میکند
- پایین
- پویا
- e
- هر
- اقتصادی
- بهره وری
- هر دو
- دارای جزئیات - بسیط
- در اغوش گرفتن
- سنگ سنباده
- پایان
- نقطه پایانی
- موتور
- مهندسی
- بالا بردن
- افزایش
- وارد
- اشخاص
- موجودیت
- محیط
- محیط
- اتر (ETH)
- حتی
- واقعه
- مثال ها
- اعدام
- موجود
- خروج
- با تجربه
- تجارب
- اکتشاف
- اکتشاف
- عامل
- غلط
- بسیار
- امکانات
- باز خورد
- پرونده
- فایل ها
- پیدا کردن
- شرکت
- نام خانوادگی
- مناسب
- انعطاف پذیری
- قابل انعطاف
- به دنبال
- پیروی
- فونت
- برای
- سابق
- چارچوب
- تازه
- از جانب
- FS
- کامل
- کاملا
- تابع
- قابلیت
- توابع
- سوالات عمومی
- ژنراتور
- دریافت کنید
- گرفتن
- رفتن
- خوب
- توری
- نگهبان
- راهنمایی
- دست
- دسته
- آیا
- عنوان
- ارتفاع
- کمک
- کمک
- دارای
- ساعت ها
- چگونه
- چگونه
- HTTP
- HTTPS
- ترکیبی
- ابر هیبرید
- i
- آی بی ام
- IBM Cloud
- ICO
- ICON
- هویت
- if
- تصویر
- انجام
- پیاده سازی
- واردات
- مهم
- بهبود
- in
- شامل
- وارد شونده
- به طور فزاینده
- مستقل
- شاخص
- شالوده
- ابداع
- بینش
- یکپارچه
- یکپارچگی
- اثر متقابل
- به
- ذاتی
- استناد کرد
- IT
- متخصصان فناوری اطلاعات
- ITS
- خود
- کار
- شغل ها
- سفر
- JPG
- json
- نگاه داشتن
- زبان
- بزرگ
- آخرین
- رهبری
- برجسته
- منجر می شود
- کتابخانه ها
- پسندیدن
- لینک
- محلی
- محل
- به صورت محلی
- محل
- ورود به سیستم
- ورود
- طولانی
- دیگر
- نگاه کنيد
- به دنبال
- خیلی
- اصلی
- حفظ
- نگهداری
- ساخت
- اداره می شود
- مدیریت
- مدیر
- بسیاری
- نقشه برداری
- مارس
- مادادون
- ماتریس
- حداکثر عرض
- ممکن است..
- me
- دیدار
- روش
- قدرت
- مهاجرت
- مهاجرت
- دقیقه
- دقیقه
- موبایل
- مدل
- نوسازی
- نوین کردن
- بیش
- علاوه بر این
- اکثر
- حرکت
- متحرک
- چندگانه
- بسیاری
- my
- جهت یابی
- نیاز
- ضروری
- جدید
- فناوری های نوین
- نیوزیلند
- خبرنامه
- نه
- گره
- Node.js و
- هیچ چی
- نوامبر
- اکنون
- اوت
- اشیاء
- of
- خاموش
- ارائه
- پیشنهادات
- on
- ONE
- فقط
- باز کن
- قابل استفاده
- عملیات
- بهینه
- گزینه
- or
- تنظیم و ارکستراسیون
- سازمان های
- دیگر
- ما
- خارج
- روی
- به طور کلی
- مروری
- خود
- سرعت
- با ما
- موازی
- پارامتر
- پارامترهای
- بخش
- همکاری
- گذشت
- مسیر
- الگو
- مردم
- مجوز
- شخص
- پی اچ پی
- انتخاب کنید
- محوری
- محل
- سکو
- افلاطون
- هوش داده افلاطون
- PlatoData
- لطفا
- پلاگین
- نقطه
- سیاست
- قابل حمل بودن
- موقعیت
- ممکن
- احتمالا
- پست
- پتانسیل
- شیوه های
- دقت
- اصلی
- چاپ
- خصوصی
- روند
- فرآیندهای
- در حال پردازش
- تولید
- حرفه ای
- برنامه نويسي
- برنامه ها
- پروژه
- پروژه ها
- املاک
- پروتکل
- ارائه
- ارائه دهنده
- ارائه
- عمومی
- ابر عمومی
- منتشر شده
- پــایتــون
- سوالات
- به سرعت
- رسیدن به
- واکنش نشان می دهند
- خواندن
- مطالعه
- قلمرو
- تازه
- منظم
- به طور منظم
- گزارش
- نشان دادن
- درخواست
- خواسته
- درخواست
- نیاز
- ضروری
- مورد نیاز
- تحقیق
- منابع
- پاسخ
- پاسخگو
- REST
- نتیجه
- رودخانه
- ربات ها
- دویدن
- اجرا می شود
- همان
- ماهواره ای
- گفتن
- کمیاب
- پرده
- اسکریپت
- بخش
- امن
- را انتخاب کنید
- سنسور
- جستجوگرها
- جدا کردن
- خدمت
- خدمت کرده است
- سرور
- بدون سرور
- خدمات
- جلسات
- چند
- اشتراک گذاری
- به اشتراک گذاشته شده
- کوتاه
- نشان داده شده
- سیگنال
- به طور قابل توجهی
- مشابه
- به طور مشابه
- سادگی
- پس از
- تنها
- سایت
- مهارت ها
- قطعه
- So
- تا حالا
- برخی از
- خاص
- مشخص شده
- حمایت مالی
- مربع
- شروع
- شروع
- آغاز شده
- دولت
- ساده
- خیابان
- مشترک
- عرضه شده است
- پشتیبانی
- پشتیبانی
- بررسی
- SVG
- همکاری
- نحو
- سیستم
- قرص
- گرفتن
- صورت گرفته
- اهداف
- کار
- تکنیک
- فن آوری
- سومین
- آزمون
- آزمایش
- تست
- تست
- نسبت به
- که
- La
- شان
- آنها
- موضوع
- سپس
- آنجا.
- اینها
- آنها
- این
- در این سال
- کسانی که
- فکر
- رهبری فکر
- سه
- از طریق
- زمان
- نکات
- نکات و ترفندها
- عنوان
- به
- رمز
- نشانه
- بالا
- موضوع
- آموزش
- قطار
- دگرگونی
- حمل و نقل
- روند
- باعث شد
- دور زدن
- توییتر
- نوع
- نوعی
- واحد
- به روز رسانی
- شهری
- URL
- استفاده کنید
- استفاده
- کاربر
- کاربران
- با استفاده از
- معمولا
- استفاده کنید
- با استفاده از
- ارزشها
- وسیع
- بسیار
- از طريق
- W
- می خواهم
- راه
- we
- وب
- برنامه تحت وب
- برنامه های وب
- خوب
- بود
- چی
- چه شده است
- چه زمانی
- که
- در حین
- با
- در داخل
- وردپرس
- مهاجرت کاری
- کارگر
- کتبی
- سال
- شما
- جوان
- شما
- زلال
- زفیرنت