شروع کار با توابع Cloud Run (HTTP)

شروع کار با توابع Cloud Run (HTTP)

درباره این codelab

subjectآخرین به‌روزرسانی: اوت ۲۳, ۲۰۲۴
account_circleنویسنده: یکی از کارمندان Google

1. مقدمه

توابع Cloud Run روشی جدید برای استقرار بارهای کاری با استفاده از پارادایم های رویداد GCF و امضای تابع است. توابع Cloud Run به‌جای استفاده از فرآیند ساخت و پیکربندی‌های استقرار نظر ما، کنترل مستقیمی بر سرویس زیربنایی ایجاد شده در Cloud Run به شما می‌دهد.

با توابع Cloud Run، ما UX ساده از استقرار منبع Cloud Run را ارائه می‌کنیم که به توسعه‌دهندگان کنترل کاملی بر حجم کاری خود با استفاده از تنظیمات Cloud Run می‌دهیم.

این کد لبه از نمونه های nodejs در مثال های زیر استفاده می کند. با این حال، می‌توانید از نمونه‌های کد نسل دوم Cloud Functions به زبان انتخابی خود استفاده کنید:

چیزی که یاد خواهید گرفت

  • نحوه استقرار یک تابع 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 می توانید لیست تمام پروژه های موجود را مشاهده کنید.