درباره این codelab
1. مقدمه
نمای کلی
توابع Cloud Run روشی جدید برای استقرار بارهای کاری با استفاده از پارادایم های رویداد GCF و امضای تابع است. توابع Cloud Run بهجای استفاده از فرآیند ساخت و پیکربندیهای استقرار نظر ما، کنترل مستقیمی بر سرویس زیربنایی ایجاد شده در Cloud Run به شما میدهد.
با توابع Cloud Run، ما UX ساده از استقرار منبع Cloud Run را ارائه میکنیم که به توسعهدهندگان کنترل کاملی بر حجم کاری خود با استفاده از تنظیمات Cloud Run میدهیم.
این کد لبه از نمونه های nodejs در مثال های زیر استفاده می کند. با این حال، میتوانید از نمونههای کد نسل دوم Cloud Functions به زبان انتخابی خود استفاده کنید:
- نمونه های تابع پایتون
- نمونه های تابع Nodejs
- برو نمونه تابع
- نمونه تابع جاوا
- نمونه تابع PHP
- نمونه تابع یاقوت
- نمونه تابع دات نت
چیزی که یاد خواهید گرفت
- نحوه استقرار یک تابع Cloud Run که توسط یک درخواست HTTP راه اندازی می شود
2. متغیرهای محیط را تنظیم کنید و API ها را فعال کنید
gcloud CLI را ارتقا دهید
ابتدا باید یک نسخه جدید از gcloud CLI را نصب کنید. با اجرای دستور زیر می توانید CLI را به روز کنید:
gcloud components update
تنظیم متغیرهای محیطی
می توانید متغیرهای محیطی را تنظیم کنید که در سراسر این کد لبه مورد استفاده قرار می گیرند.
PROJECT_ID=<YOUR_PROJECT_ID> REGION=<YOUR_REGION, e.g. us-central1> gcloud config set project $PROJECT_ID SERVICE_NAME=crf-http-codelab
API ها را فعال کنید
قبل از اینکه بتوانید از این کد لبه استفاده کنید، چندین API وجود دارد که باید آنها را فعال کنید. این آزمایشگاه کد نیاز به استفاده از API های زیر دارد. با اجرای دستور زیر می توانید آن API ها را فعال کنید:
gcloud services enable run.googleapis.com \ cloudbuild.googleapis.com \ storage.googleapis.com \ artifactregistry.googleapis.com
3. یک تابع HTTP ایجاد کنید
ابتدا یک دایرکتوری برای کد منبع و سی دی در آن دایرکتوری ایجاد کنید.
mkdir -p cloud-run-functions/$SERVICE_NAME && cd $_
سپس یک فایل package.json
با محتوای زیر ایجاد کنید:
{ "dependencies": { "@google-cloud/functions-framework": "^3.0.0" } }
سپس یک فایل index.js
با محتوای زیر ایجاد کنید:
const functions = require("@google-cloud/functions-framework"); functions.http("helloHttp", (req, res) => { res.send(`Hello ${req.query.name || req.body.name || "World"}!`); });
4. تابع را مستقر کنید
اکنون می توانید تابع Cloud Run را با اجرای دستور زیر مستقر کنید:
gcloud beta run deploy $SERVICE_NAME \ --source . \ --function helloHttp \ --region us-central1 \ --no-allow-unauthenticated
این دستور از buildpack ها برای تبدیل کد منبع تابع شما به یک تصویر ظرف آماده برای تولید استفاده می کند.
لطفا به موارد زیر توجه کنید:
- از پرچم منبع استفاده می شود تا به Cloud Run بگوید که تابع را در یک سرویس مبتنی بر کانتینر قابل اجرا بسازد.
- پرچم -function (جدید) برای تنظیم نقطه ورودی سرویس جدید به عنوان امضای تابعی که می خواهید فراخوانی شود استفاده می شود.
- (اختیاری) -no-allow-unauthenticated برای جلوگیری از فراخوانی عمومی عملکرد شما
5. تابع را تست کنید
وقتی استقرار کامل شد، URL سرویس را خواهید دید. برای فراخوانی تابع، باید یک درخواست احراز هویت شده با کد هویت خود یا نشانه هویت اصلی که نقش فراخوان اجرای ابری دارد، ارسال کنید، مانند شکل زیر:
# get the Service URL SERVICE_URL="$(gcloud run services describe $SERVICE_NAME --region us-central1 --format 'value(status.url)')" # invoke the service curl -H "Authorization: bearer $(gcloud auth print-identity-token)" -X GET $SERVICE_URL
6. تبریک می گویم!
برای تکمیل کد لبه تبریک می گویم!
توصیه می کنیم اسناد مربوط به عملکردهای Cloud Run را مرور کنید
آنچه را پوشش داده ایم
- نحوه استقرار یک تابع Cloud Run که توسط یک درخواست HTTP راه اندازی می شود
7. پاک کن
برای جلوگیری از هزینههای غیرعمدی، (به عنوان مثال، اگر سرویسهای Cloud Run به طور ناخواسته بیشتر از تخصیص فراخوانی ماهانه Cloud Run در ردیف رایگان فراخوانی میشوند)، میتوانید Cloud Run را حذف کنید یا پروژهای را که در مرحله 2 ایجاد کردهاید حذف کنید.
برای حذف تابع Cloud Run، به کنسول Cloud Run Cloud در https://console.cloud.google.com/run بروید و سرویس crf-http-codelab
را حذف کنید.
اگر تصمیم به حذف کل پروژه دارید، میتوانید به https://console.cloud.google.com/cloud-resource-manager بروید، پروژهای را که در مرحله ۲ ایجاد کردهاید انتخاب کنید و حذف را انتخاب کنید. اگر پروژه را حذف کنید، باید پروژه ها را در Cloud SDK خود تغییر دهید. با اجرای gcloud projects list
می توانید لیست تمام پروژه های موجود را مشاهده کنید.