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

1. بررسی اجمالی

Cloud-Functions.png

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

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

اتصال و گسترش خدمات ابری

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

907ffb96feada611.png

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

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

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

بدون سرور

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

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

بارهای کاری ناهمزمان مانند ETL سبک وزن، یا اتوماسیون های ابری مانند راه اندازی برنامه های کاربردی، اکنون دیگر نیازی به سرور خود و یک توسعه دهنده برای سیم کشی آن ندارند. شما به سادگی یک Cloud Function را که به رویدادی که می خواهید محدود شده است، مستقر می کنید و کارتان تمام می شود.

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

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

  • یک تابع ابری ایجاد کنید
  • استقرار و تست تابع
  • مشاهده سیاهههای مربوط

2. راه اندازی و الزامات

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

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

dMbN6g9RawQj_VXCSYpdYncY-DbaRzr2GbnwoV7jFf1u3avxJtmGPmKpMYgiaMH-qu80a_NJ9p2IIXFppYk8x3wyymZXavjglNLJJHHXieCvXw5 Zw

ci9Oe6PgnbNuSYlMyvbXF1JdQyiHoEgnhl4PlV_MFagm2ppzhueRkqX4eLjJllZco_2zCp0V0bpTupUSKji9KkQyWqj11pqit1K1faS1V6aTQz5GpG0T

8-tA_Lheyo8SscAVKrGii2coplQp2_D1Iosb2ViABY0UUO1A8cimXUu6Wf1R9zJIRExL5OB2j946aIiFtyKTzxDcNnuznmR45vZ2HMoK3UUO1A8cimXUu6Wf1R9zJIRExL5OB2j946aIiFtyKTzxDcNnuznmR45vZ2HMoK3UUUO1A8cimXUu6Wf1R9zJIRExL5OB2j946aIiFtyKTzxDcNnuznmR45vZ2HMoK3UUUO1A8CXUF

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

  1. در مرحله بعد، برای استفاده از منابع Google Cloud، باید صورت‌حساب را در Cloud Console فعال کنید .

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

Google Cloud Shell

در حالی که Google Cloud و توابع Cloud را می توان از راه دور از لپ تاپ شما کار کرد، در این کد لبه از Google Cloud Shell استفاده خواهیم کرد، یک محیط خط فرمان که در Cloud اجرا می شود.

این ماشین مجازی مبتنی بر دبیان با تمام ابزارهای توسعه که شما نیاز دارید بارگذاری شده است. این دایرکتوری اصلی 5 گیگابایتی دائمی را ارائه می دهد و در Google Cloud اجرا می شود و عملکرد شبکه و احراز هویت را بسیار افزایش می دهد. این بدان معنی است که تمام چیزی که برای این کد لبه نیاز دارید یک مرورگر است (بله، روی کروم بوک کار می کند).

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

I5aEsuNurCxHoDFjZRZrKBdarPPKPoKuExYpdagmdaOLKe7eig3DAKJitIKyuOpuwmrMAyZhp5AXpmD_k66cBuc1aUnWlJeSfo_aTKPY9aNMurhfegg1NYAd

Screen Shot 2017-06-14 at 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_0ZnSjC7GxDNxWrJJUaoM53LnqABYamrBJhCuXF-J9XBzuUgaz7VvaxNrkP2TAn93DrxZHQ4PhZ5

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

echo $GOOGLE_CLOUD_PROJECT

خروجی فرمان

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

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

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

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

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

fe64222954f5f372.png

  • روی "CREATE FUNCTION" کلیک کنید:

7adca9640ca2e5a6.png

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

795f1fedc0f039bb.png

  • در حالی که هنوز در گفتگوی "ایجاد تابع" هستید، در پایین، روی "ایجاد" کلیک کنید تا تابع اجرا شود:

b68c3647b771e6f9.png

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

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

3ec684b1b4906657.png

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

4. تابع را تست کنید

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

74e310ee6663bb3c.png

در قسمت Triggering event، متن زیر را بین پرانتزهای {} وارد کنید و روی تست تابع کلیک کنید.

در قسمت خروجی باید پیغام Success: Hello World!

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

a876def9cbf24a45.png

5. گزارش های عملکرد را مشاهده کنید

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

8917a2bfa4fb9502.png

منوی عملکرد خود را نمایش دهید و روی View logs کلیک کنید:

e97e6ec1fc17dfd7.png

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

d91a00cf4457fa84.png

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

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

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

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

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

4fe11e1b41b32ba2.png

7. بعدش چیه

Cloud Functions چیزهای بیشتری را برای شما آماده کرده است! سایر کدها و صفحه محصول و مستندات آن را بررسی کنید.

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