۱. مرور کلی

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

رویدادها و محرکها
رویدادهای ابری اتفاقاتی هستند که در محیط ابری شما رخ میدهند. این اتفاقات ممکن است شامل مواردی مانند تغییرات در دادهها در یک پایگاه داده، اضافه شدن فایلها به یک سیستم ذخیرهسازی یا ایجاد یک نمونه ماشین مجازی جدید باشند.
رویدادها چه شما بخواهید به آنها پاسخ دهید و چه نخواهید، رخ میدهند. شما با استفاده از یک تریگر، به یک رویداد پاسخ میدهید. تریگر اعلانی است که نشان میدهد شما به یک رویداد خاص یا مجموعهای از رویدادها علاقهمند هستید. اتصال یک تابع به یک تریگر به شما امکان میدهد رویدادها را ثبت و روی آنها عمل کنید. برای اطلاعات بیشتر در مورد ایجاد تریگرها و مرتبط کردن آنها با توابع خود، به بخش رویدادها و تریگرها مراجعه کنید.
بدون سرور
توابع ابری، کار مدیریت سرورها، پیکربندی نرمافزار، بهروزرسانی چارچوبها و وصلهبندی سیستمعاملها را حذف میکند. نرمافزار و زیرساخت بهطور کامل توسط گوگل مدیریت میشوند، بهطوری که شما فقط کد اضافه میکنید. علاوه بر این، تأمین منابع بهطور خودکار در پاسخ به رویدادها اتفاق میافتد. این بدان معناست که یک تابع میتواند از چند فراخوانی در روز تا میلیونها فراخوانی بدون هیچ کاری از سوی شما، مقیاسپذیر باشد.
موارد استفاده
بارهای کاری ناهمزمان مانند ETL سبک یا اتوماسیونهای ابری مانند راهاندازی ساخت برنامههای کاربردی، اکنون دیگر به سرور مخصوص به خود و یک توسعهدهنده برای اتصال آن نیاز ندارند. شما به سادگی یک تابع ابری را که به رویداد مورد نظر شما متصل است، مستقر میکنید و کار تمام است.
ماهیت دقیق و بر اساس تقاضا در توابع ابری، آن را به گزینهای ایدهآل برای APIها و وبهوکهای سبک تبدیل میکند. علاوه بر این، تأمین خودکار نقاط پایانی HTTP هنگام استقرار یک تابع HTTP به این معنی است که نیازی به پیکربندی پیچیدهای مانند برخی سرویسهای دیگر نیست.
این آزمایشگاه عملی به شما نشان میدهد که چگونه با استفاده از کنسول Google Cloud، یک تابع ابری را ایجاد، مستقر و آزمایش کنید. شما:
- یک تابع ابری ایجاد کنید
- تابع را مستقر و آزمایش کنید
- مشاهده گزارشها
۲. تنظیمات و الزامات
تنظیم محیط خودتنظیم
- وارد Cloud Console شوید و یک پروژه جدید ایجاد کنید یا از یک پروژه موجود دوباره استفاده کنید. (اگر از قبل حساب Gmail یا G Suite ندارید، باید یکی ایجاد کنید .)
شناسه پروژه را به خاطر بسپارید، یک نام منحصر به فرد در تمام پروژههای Google Cloud (نام بالا قبلاً گرفته شده و برای شما کار نخواهد کرد، متاسفیم!). بعداً در این آزمایشگاه کد به آن PROJECT_ID گفته خواهد شد.
- در مرحله بعد، برای استفاده از منابع گوگل کلود، باید پرداخت را در Cloud Console فعال کنید .
اجرای این آزمایشگاه کد، اگر اصلاً هزینهای نداشته باشد، نباید هزینه زیادی داشته باشد. حتماً دستورالعملهای بخش «پاکسازی» را که به شما نحوه خاموش کردن منابع را آموزش میدهد، دنبال کنید تا پس از این آموزش، متحمل هزینه نشوید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان ۳۰۰ دلاری هستند.
پوسته ابری گوگل
اگرچه میتوان از راه دور و از طریق لپتاپ، گوگل کلود و توابع ابری را مدیریت کرد، اما در این آزمایشگاه کد، از گوگل کلود شل ، یک محیط خط فرمان که در فضای ابری اجرا میشود، استفاده خواهیم کرد.
این ماشین مجازی مبتنی بر دبیان، تمام ابزارهای توسعه مورد نیاز شما را در خود جای داده است. این ماشین مجازی یک دایرکتوری خانگی ۵ گیگابایتی دائمی ارائه میدهد و در فضای ابری گوگل اجرا میشود که عملکرد شبکه و احراز هویت را تا حد زیادی بهبود میبخشد. این بدان معناست که تنها چیزی که برای این آزمایشگاه کد نیاز دارید یک مرورگر است (بله، روی کرومبوک هم کار میکند).
- برای فعال کردن Cloud Shell از کنسول Cloud، کافیست روی Activate Cloud Shell کلیک کنید.
(فقط چند لحظه طول میکشد تا آماده شود و به محیط متصل شود).
پس از اتصال به 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 جستجو کنید:
Cloud Shell همچنین برخی از متغیرهای محیطی را به طور پیشفرض تنظیم میکند که ممکن است هنگام اجرای دستورات بعدی مفید باشند.
echo $GOOGLE_CLOUD_PROJECT
خروجی دستور
<PROJECT_ID>
- در نهایت، منطقه پیشفرض و پیکربندی پروژه را تنظیم کنید.
gcloud config set compute/zone us-central1-f
شما میتوانید مناطق مختلفی را انتخاب کنید. برای اطلاعات بیشتر، به بخش مناطق و نواحی مراجعه کنید.
۳. یک تابع ایجاد کنید
در این مرحله، شما قصد دارید با استفاده از کنسول، یک تابع ابری ایجاد کنید.
- در کنسول، روی منوی ناوبری > توابع ابری کلیک کنید.

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

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

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

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

همین! تابع شما اکنون فعال و آمادهی اجرا از طریق HTTP است.
۴. تابع را آزمایش کنید
در صفحه مرور کلی توابع ابری، منوی مربوط به تابع خود را نمایش داده و روی تست تابع کلیک کنید:

در فیلد Triggering event، متن زیر را بین براکتهای {} وارد کنید و روی Test the function کلیک کنید.
در فیلد خروجی ، باید پیام موفقیت: Hello World! را ببینید.
در فیلد Logs ، کد وضعیت ۲۰۰ نشان دهنده موفقیت است. توجه داشته باشید که ممکن است نمایش گزارشها یک دقیقه طول بکشد.

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

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

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

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

۷. قدم بعدی چیست؟
توابع ابری چیزهای بیشتری برای شما در نظر گرفتهاند! سایر آزمایشگاههای کد و صفحه محصول و مستندات آن را بررسی کنید.
همچنین باید موارد زیر را بررسی کنید:
- فراخوانی توابع ابری (تریگرهای موجود برای فراخوانی تابع)
- نظارت بر عملکردهای ابری (گزارشها، گزارش خطا و موارد دیگر)
- ... یا آزمایشگاههای کد بیشتر از دستهی Serverless