شروع کار با توابع ابری

۱. مرور کلی

توابع ابری.png

با توابع ابری، شما توابع ساده و تک منظوره ای می نویسید که به رویدادهای منتشر شده از زیرساخت و خدمات ابری شما متصل می شوند. تابع ابری شما زمانی فعال می شود که یک رویداد در حال مشاهده اجرا شود. کد شما در یک محیط کاملاً مدیریت شده اجرا می شود. نیازی به تهیه هیچ زیرساختی یا نگرانی در مورد مدیریت هیچ سروری نیست.

توابع ابری در حال حاضر می‌توانند با جاوا اسکریپت، پایتون یا Go نوشته شوند. در مورد جاوا اسکریپت، آنها در محیط Node.js در پلتفرم ابری گوگل اجرا می‌شوند. می‌توانید تابع ابری خود را بردارید و آن را در هر زمان اجرای استاندارد Node.js اجرا کنید که هم قابلیت حمل و هم آزمایش محلی را بسیار آسان می‌کند.

اتصال و گسترش سرویس‌های ابری

توابع ابری یک لایه منطقی ارتباطی فراهم می‌کند که به شما امکان می‌دهد برای اتصال و گسترش سرویس‌های ابری، کد بنویسید. به آپلود فایل در فضای ذخیره‌سازی ابری، تغییر گزارش یا پیام دریافتی در یک موضوع Cloud Pub/Sub گوش دهید و به آن پاسخ دهید. توابع ابری، سرویس‌های ابری موجود را تقویت می‌کند و به شما امکان می‌دهد تعداد فزاینده‌ای از موارد استفاده را با منطق برنامه‌نویسی دلخواه برطرف کنید. توابع ابری به اعتبارنامه حساب سرویس گوگل دسترسی دارند و بنابراین به طور یکپارچه با اکثر سرویس‌های پلتفرم ابری گوگل مانند Datastore، Cloud Spanner، Cloud Translation API، Cloud Vision API و بسیاری دیگر احراز هویت می‌شوند.

907ffb96feada611.png

رویدادها و محرک‌ها

رویدادهای ابری اتفاقاتی هستند که در محیط ابری شما رخ می‌دهند. این اتفاقات ممکن است شامل مواردی مانند تغییرات در داده‌ها در یک پایگاه داده، اضافه شدن فایل‌ها به یک سیستم ذخیره‌سازی یا ایجاد یک نمونه ماشین مجازی جدید باشند.

رویدادها چه شما بخواهید به آنها پاسخ دهید و چه نخواهید، رخ می‌دهند. شما با استفاده از یک تریگر، به یک رویداد پاسخ می‌دهید. تریگر اعلانی است که نشان می‌دهد شما به یک رویداد خاص یا مجموعه‌ای از رویدادها علاقه‌مند هستید. اتصال یک تابع به یک تریگر به شما امکان می‌دهد رویدادها را ثبت و روی آنها عمل کنید. برای اطلاعات بیشتر در مورد ایجاد تریگرها و مرتبط کردن آنها با توابع خود، به بخش رویدادها و تریگرها مراجعه کنید.

بدون سرور

توابع ابری، کار مدیریت سرورها، پیکربندی نرم‌افزار، به‌روزرسانی چارچوب‌ها و وصله‌بندی سیستم‌عامل‌ها را حذف می‌کند. نرم‌افزار و زیرساخت به‌طور کامل توسط گوگل مدیریت می‌شوند، به‌طوری که شما فقط کد اضافه می‌کنید. علاوه بر این، تأمین منابع به‌طور خودکار در پاسخ به رویدادها اتفاق می‌افتد. این بدان معناست که یک تابع می‌تواند از چند فراخوانی در روز تا میلیون‌ها فراخوانی بدون هیچ کاری از سوی شما، مقیاس‌پذیر باشد.

موارد استفاده

بارهای کاری ناهمزمان مانند ETL سبک یا اتوماسیون‌های ابری مانند راه‌اندازی ساخت برنامه‌های کاربردی، اکنون دیگر به سرور مخصوص به خود و یک توسعه‌دهنده برای اتصال آن نیاز ندارند. شما به سادگی یک تابع ابری را که به رویداد مورد نظر شما متصل است، مستقر می‌کنید و کار تمام است.

ماهیت دقیق و بر اساس تقاضا در توابع ابری، آن را به گزینه‌ای ایده‌آل برای APIها و وب‌هوک‌های سبک تبدیل می‌کند. علاوه بر این، تأمین خودکار نقاط پایانی HTTP هنگام استقرار یک تابع HTTP به این معنی است که نیازی به پیکربندی پیچیده‌ای مانند برخی سرویس‌های دیگر نیست.

این آزمایشگاه عملی به شما نشان می‌دهد که چگونه با استفاده از کنسول Google Cloud، یک تابع ابری را ایجاد، مستقر و آزمایش کنید. شما:

  • یک تابع ابری ایجاد کنید
  • تابع را مستقر و آزمایش کنید
  • مشاهده گزارش‌ها

۲. تنظیمات و الزامات

تنظیم محیط خودتنظیم

  1. وارد Cloud Console شوید و یک پروژه جدید ایجاد کنید یا از یک پروژه موجود دوباره استفاده کنید. (اگر از قبل حساب Gmail یا G Suite ندارید، باید یکی ایجاد کنید .)

dMbN6g9RawQj_VXCSYpdYncY-DbaRzr2GbnwoV7jFf1u3avxJtmGPmKpMYgiaMH-qu80a_NJ9p2IIXFppYk8x3wyymZXavjglNLJJhuXieCem56H30hwXtd8PvXGpXJO9gEUDu3cZw

ci9Oe6PgnbNuSYlMyvbXF1JdQyiHoEgnhl4PlV_MFagm2ppzhueRkqX4eLjJllZco_2zCp0V0bpTupUSKji9KkQyWqj11pqit1K1faS1V6aTQz5GpG0T

8-tA_Lheyo8SscAVKrGii2coplQp2_D1Iosb2ViABY0UUO1A8cimXUu6Wf1R9zJIRExL5 OB2j946aIiFtyKTzxDcNnuznmR45vZ2HMoK3o67jxuoUJCAnqvEX6NgPGFjCVNgASc-lg

شناسه پروژه را به خاطر بسپارید، یک نام منحصر به فرد در تمام پروژه‌های Google Cloud (نام بالا قبلاً گرفته شده و برای شما کار نخواهد کرد، متاسفیم!). بعداً در این آزمایشگاه کد به آن PROJECT_ID گفته خواهد شد.

  1. در مرحله بعد، برای استفاده از منابع گوگل کلود، باید پرداخت را در Cloud Console فعال کنید .

اجرای این آزمایشگاه کد، اگر اصلاً هزینه‌ای نداشته باشد، نباید هزینه زیادی داشته باشد. حتماً دستورالعمل‌های بخش «پاکسازی» را که به شما نحوه خاموش کردن منابع را آموزش می‌دهد، دنبال کنید تا پس از این آموزش، متحمل هزینه نشوید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان ۳۰۰ دلاری هستند.

پوسته ابری گوگل

اگرچه می‌توان از راه دور و از طریق لپ‌تاپ، گوگل کلود و توابع ابری را مدیریت کرد، اما در این آزمایشگاه کد، از گوگل کلود شل ، یک محیط خط فرمان که در فضای ابری اجرا می‌شود، استفاده خواهیم کرد.

این ماشین مجازی مبتنی بر دبیان، تمام ابزارهای توسعه مورد نیاز شما را در خود جای داده است. این ماشین مجازی یک دایرکتوری خانگی ۵ گیگابایتی دائمی ارائه می‌دهد و در فضای ابری گوگل اجرا می‌شود که عملکرد شبکه و احراز هویت را تا حد زیادی بهبود می‌بخشد. این بدان معناست که تنها چیزی که برای این آزمایشگاه کد نیاز دارید یک مرورگر است (بله، روی کروم‌بوک هم کار می‌کند).

  1. برای فعال کردن Cloud Shell از کنسول Cloud، کافیست روی Activate Cloud Shell کلیک کنید. fEbHefbRynwXpq1vj2wJw6Dr17O0np8l-WOekxAZYlZQIORsWQE_xJl-cNhogjATLn-YxLVz8CgLvIW1Ncc0yXKJsfzJGMYgUeLsVB7zSwz7p6ItNgx4tXqQjag7BfWPcZN5kP-X3Q (فقط چند لحظه طول می‌کشد تا آماده شود و به محیط متصل شود).

I5aEsuNurCxHoDFjZRZrKBdarPPKPoKuExYpdagmdaOLKe7eig3DAKJitIKyuOpuwmrMAyZhp5AXpmD_k66cBuc1aUnWlJeSfo_aTKPY9aNMurhfegg1CYaE11jdpSTYNNIYARe01A

اسکرین شات 2017-06-14 ساعت 10.13.43 PM.png

پس از اتصال به Cloud Shell، باید ببینید که از قبل احراز هویت شده‌اید و پروژه از قبل روی PROJECT_ID شما تنظیم شده است.

gcloud auth list

خروجی دستور

Credentialed accounts:
 - <myaccount>@<mydomain>.com (active)
gcloud config list project

خروجی دستور

[core]
project = <PROJECT_ID>

اگر به هر دلیلی پروژه تنظیم نشده باشد، کافیست دستور زیر را اجرا کنید:

gcloud config set project <PROJECT_ID>

به دنبال PROJECT_ID خود هستید؟ بررسی کنید که در مراحل راه‌اندازی از چه شناسه‌ای استفاده کرده‌اید یا آن را در داشبورد Cloud Console جستجو کنید:

R7chO4PKQfLC3bvFBNZJALLTUiCgyLEq_67ECX7ohs_0ZnSjC7GxDNxWrJJUaoM53LnqA BYamrBJhCuXF-J9XBzuUgaz7VvaxNrkP2TAn93Drxccyj2-5zz4AxL-G3hzxZ4PsM5HHQ

Cloud Shell همچنین برخی از متغیرهای محیطی را به طور پیش‌فرض تنظیم می‌کند که ممکن است هنگام اجرای دستورات بعدی مفید باشند.

echo $GOOGLE_CLOUD_PROJECT

خروجی دستور

<PROJECT_ID>
  1. در نهایت، منطقه پیش‌فرض و پیکربندی پروژه را تنظیم کنید.
gcloud config set compute/zone us-central1-f

شما می‌توانید مناطق مختلفی را انتخاب کنید. برای اطلاعات بیشتر، به بخش مناطق و نواحی مراجعه کنید.

۳. یک تابع ایجاد کنید

در این مرحله، شما قصد دارید با استفاده از کنسول، یک تابع ابری ایجاد کنید.

  • در کنسول، روی منوی ناوبری > توابع ابری کلیک کنید.

fe64222954f5f372.png

  • روی «ایجاد تابع» کلیک کنید:

7adca9640ca2e5a6.png

  • نام تابع خود را GCFunction و سایر پیش‌فرض‌ها را حفظ کنید: تخصیص حافظه، HTTP به عنوان تریگر، ویرایشگر درون‌خطی، زمان اجرای پیش‌فرض و کد نمونه پیش‌فرض.

795f1fedc0f039bb.png

  • در حالی که هنوز در کادر محاوره‌ای «ایجاد تابع» هستید، در پایین، روی «ایجاد» کلیک کنید تا تابع مستقر شود:

b68c3647b771e6f9.png

بعد از اینکه روی ایجاد کلیک کردید، کنسول به صفحه مرور کلی توابع ابری هدایت می‌شود.

در حین اجرای تابع، آیکون کنار آن یک چرخنده کوچک است. وقتی تابع اجرا شد، این چرخنده به صورت یک علامت تیک سبز رنگ خواهد بود. در صورت وجود هرگونه مشکل، با یک آیکون قرمز و لینکی به گزارش‌ها به شما اطلاع داده می‌شود تا متوجه شوید چه مشکلی پیش آمده است (احتمالاً مشکلی در کد شما وجود دارد).

3ec684b1b4906657.png

همین! تابع شما اکنون فعال و آماده‌ی اجرا از طریق HTTP است.

۴. تابع را آزمایش کنید

در صفحه مرور کلی توابع ابری، منوی مربوط به تابع خود را نمایش داده و روی تست تابع کلیک کنید:

74e310ee6663bb3c.png

در فیلد Triggering event، متن زیر را بین براکت‌های {} وارد کنید و روی Test the function کلیک کنید.

در فیلد خروجی ، باید پیام موفقیت: Hello World! را ببینید.

در فیلد Logs ، کد وضعیت ۲۰۰ نشان دهنده موفقیت است. توجه داشته باشید که ممکن است نمایش گزارش‌ها یک دقیقه طول بکشد.

a876def9cbf24a45.png

۵. مشاهده گزارش‌های عملکرد

برای بازگشت به صفحه مرور کلی عملکردهای ابری، روی پیکان آبی کلیک کنید:

8917a2bfa4fb9502.png

منوی مربوط به تابع خود را نمایش دهید و روی مشاهده گزارش‌ها کلیک کنید:

e97e6ec1fc17dfd7.png

در اینجا مثالی از تاریخچه لاگ آورده شده است:

d91a00cf4457fa84.png

توجه داشته باشید که می‌توانید لاگ‌ها را بر اساس عملکرد، بر اساس شدت فیلتر کنید و از طریق یک برچسب یا متن آزاد جستجو کنید.

برنامه شما مستقر و آزمایش شده است و شما توانستید گزارش‌ها را مشاهده کنید.

۶. منابع پاکسازی

خب، شما واقعاً نیازی به پاکسازی منابع ندارید، زیرا این محاسبات بدون سرور است: مقیاس‌پذیری به صفر، به معنای مقیاس‌پذیری به صفر، بنابراین اگر عملکرد شما هیچ ترافیکی دریافت نمی‌کند، هیچ هزینه‌ای نیز متحمل نخواهید شد. همچنین، ۲ میلیون فراخوانی اول عملکرد ابری در هر ماه رایگان است. برای جزئیات بیشتر به صفحه قیمت‌گذاری مراجعه کنید.

اگر می‌خواهید تابع را حذف کنید، کافیست به صفحه مرور کلی بروید، تابع را انتخاب کنید و روی DELETE کلیک کنید:

4fe11e1b41b32ba2.png

۷. قدم بعدی چیست؟

توابع ابری چیزهای بیشتری برای شما در نظر گرفته‌اند! سایر آزمایشگاه‌های کد و صفحه محصول و مستندات آن را بررسی کنید.

همچنین باید موارد زیر را بررسی کنید: