۱. مرور کلی
استقرار یک برنامه وب برای اولین بار میتواند دلهرهآور باشد. حتی پس از اولین استقرار، اگر این فرآیند کار زیادی داشته باشد، ممکن است از استقرار نسخههای جدید برنامه خود خودداری کنید. با استقرار مداوم، میتوانید تغییرات برنامه خود را به راحتی و به طور خودکار اعمال کنید.
در این آزمایش، شما یک برنامه وب مینویسید و Cloud Run را طوری پیکربندی میکنید که وقتی تغییری در کد منبع برنامه شما ایجاد میشود، به طور خودکار برنامه شما را مستقر کند. سپس برنامه خود را تغییر داده و دوباره آن را مستقر میکنید.
آنچه یاد خواهید گرفت
- با ویرایشگر Cloud Shell یک برنامه وب بنویسید
- کد برنامه خود را در GitHub ذخیره کنید
- برنامه خود را به صورت خودکار در Cloud Run مستقر کنید
- هوش مصنوعی مولد را با استفاده از Genkit به برنامه خود اضافه کنید
- مدیریت اعلانهای LLM با استفاده از کتابخانه dotprompt
۲. پیشنیازها
- اگر از قبل حساب گوگل ندارید، باید یک حساب گوگل ایجاد کنید .
- به جای حساب کاری یا تحصیلی از یک حساب شخصی استفاده کنید. حسابهای کاری و تحصیلی ممکن است محدودیتهایی داشته باشند که مانع از فعال کردن APIهای مورد نیاز برای این آزمایشگاه توسط شما شود.
- اگر هنوز حساب کاربری گیتهاب ندارید، باید یک حساب کاربری گیتهاب ایجاد کنید.
- اگر حساب گیتهاب دارید، از آن استفاده کنید. گیتهاب احتمالاً حسابهای کاربری جدید را به عنوان اسپم مسدود میکند.
- احراز هویت دو مرحلهای را در حساب GitHub خود پیکربندی کنید تا احتمال علامتگذاری حسابتان به عنوان هرزنامه کاهش یابد.
۳. راهاندازی پروژه
- وارد کنسول ابری گوگل شوید.
- فعال کردن پرداخت در کنسول ابری
- تکمیل این آزمایشگاه باید کمتر از ۱ دلار آمریکا از طریق منابع ابری هزینه داشته باشد.
- شما میتوانید مراحل انتهای این آزمایش را برای حذف منابع دنبال کنید تا از هزینههای بیشتر جلوگیری شود.
- کاربران جدید واجد شرایط استفاده از دوره آزمایشی رایگان ۳۰۰ دلاری هستند.
- در رویداد Gen AI for Devs شرکت میکنید؟ ممکن است یک اعتبار ۱ دلاری در دسترس باشد.
- یک پروژه جدید ایجاد کنید یا از یک پروژه موجود دوباره استفاده کنید.
- تأیید کنید که پرداخت در پروژههای من در پرداخت ابری فعال شده است
- اگر در ستون
Billing accountدر پروژه جدید شما نوشته شده باشدBilling is disabled:- روی سه نقطه در ستون
Actionsکلیک کنید - روی تغییر صورتحساب کلیک کنید
- حساب پرداختی که میخواهید استفاده کنید را انتخاب کنید
- روی سه نقطه در ستون
- اگر در یک رویداد Gen AI for Devs شرکت میکنید، احتمالاً نام حساب کاربری شما Google Cloud Platform Trial Billing Account خواهد بود.
- اگر در ستون
۴. ویرایشگر Cloud Shell را باز کنید
- به ویرایشگر Cloud Shell بروید
- اگر ترمینال در پایین صفحه نمایش داده نشد، آن را باز کنید:
- روی منوی همبرگری کلیک کنید

- روی ترمینال کلیک کنید
- روی ترمینال جدید کلیک کنید

- روی منوی همبرگری کلیک کنید
- در ترمینال، پروژه خود را با این دستور تنظیم کنید:
- قالب:
gcloud config set project [PROJECT_ID] - مثال:
gcloud config set project lab-project-id-example - اگر نمیتوانید شناسه پروژه خود را به خاطر بیاورید:
- شما میتوانید تمام شناسههای پروژه خود را با دستور زیر فهرست کنید:
gcloud projects list | awk '/PROJECT_ID/{print $2}'

- شما میتوانید تمام شناسههای پروژه خود را با دستور زیر فهرست کنید:
- قالب:
- اگر از شما خواسته شد که مجوز دهید، برای ادامه روی تأیید کلیک کنید.

- شما باید این پیام را ببینید:
اگر یکUpdated property [core/project].
WARNINGمشاهده کردید و از شما پرسیده شدDo you want to continue (Y/N)?احتمالاً شناسه پروژه را اشتباه وارد کردهاید.Nرا فشار دهید،Enterرا بزنید و دوباره سعی کنید دستورgcloud config set projectاجرا کنید.
۵. فعال کردن APIها
در ترمینال، APIها را فعال کنید:
gcloud services enable \
run.googleapis.com \
cloudbuild.googleapis.com \
aiplatform.googleapis.com
تکمیل این دستور ممکن است چند دقیقه طول بکشد، اما در نهایت باید پیامی مشابه این پیام موفقیتآمیز نمایش داده شود:
Operation "operations/acf.p2-73d90d00-47ee-447a-b600" finished successfully.
۶. پیکربندی گیت
- ایمیل کاربر سراسری گیت خود را تنظیم کنید:
git config --global user.email "you@example.com" - نام کاربری سراسری گیت خود را تنظیم کنید:
git config --global user.name "Your Name" - شاخه پیشفرض سراسری گیت خود را روی
mainتنظیم کنید:git config --global init.defaultBranch main
۷. کد خود را بنویسید
برای نوشتن یک برنامه در Node.js:
- به دایرکتوری خانه بروید:
cd ~ - دایرکتوری
codelab-genaiرا ایجاد کنید:mkdir codelab-genai - به پوشه
codelab-genaiبروید:cd codelab-genai - یک فایل
index.jsایجاد کنید:touch index.js - فایل
package.jsonرا ایجاد کنید:npm init es6 -y -
expressبه عنوان یک وابستگی اضافه کنیدnpm install express - برای جلوگیری از commit شدن
node_modulesفایل.gitignoreرا اضافه کنید.echo node_modules/ >> .gitignore - فایل
index.jsرا در ویرایشگر Cloud Shell باز کنید: اکنون باید یک فایل خالی در قسمت بالای صفحه نمایش داده شود. اینجاست که میتوانید فایلcloudshell edit index.jsindex.jsرا ویرایش کنید.
- کد زیر را کپی کرده و در فایل
index.jsباز شده قرار دهید: بعد از چند ثانیه، ویرایشگر پوسته ابری (Cloud Shell Editor) کد شما را به طور خودکار ذخیره میکند. این کد به درخواستهای http با خوشامدگویی «سلام دنیا!» ما پاسخ میدهد.import express from 'express'; const app = express(); app.get('/', async (req, res) => { res.send('Hello world!'); }); const port = process.env.PORT || 8080; app.listen(port, () => { console.log(`codelab-genai: listening on port ${port}`); });
کد اولیه شما برای برنامهتان تکمیل شده و آماده ذخیره در کنترل نسخه است.
۸. ایجاد یک مخزن
- به ترمینال Cloud Shell در پایین صفحه خود برگردید.
- مطمئن شوید که هنوز در دایرکتوری صحیح هستید:
cd ~/codelab-genai - مخزن گیت خود را مقداردهی اولیه کنید
git init -b main - وارد رابط خط فرمان گیتهاب (GitHub CLI) شوید
برای پذیرش گزینههای پیشفرض،gh auth loginEnterفشار دهید و دستورالعملهای ابزار GitHub CLI را دنبال کنید، از جمله:- با چه حسابی میخواهید وارد شوید؟
GitHub.com - پروتکل ترجیحی شما برای عملیات گیت روی این میزبان چیست؟
HTTPS - آیا گیت را با اطلاعات کاربری گیتهاب خود تأیید میکنید؟
Y(اگر این مورد نمایش داده نمیشود، از آن صرف نظر کنید.) - چگونه میخواهید GitHub CLI را احراز هویت کنید؟
Login with a web browser - کد یکبار مصرف خود را کپی کنید
- https://github.com/login/device را باز کنید.
- کد یکبار مصرف خود را وارد کنید
- روی تأیید گیتهاب کلیک کنید
- ورود خود را تکمیل کنید
- با چه حسابی میخواهید وارد شوید؟
- تأیید کنید که وارد سیستم شدهاید:
اگر با موفقیت وارد سیستم شده باشید، باید نام کاربری GitHub شما نمایش داده شود.gh api user -q ".login" - یک متغیر
GITHUB_USERNAMEایجاد کنیدGITHUB_USERNAME=$(gh api user -q ".login") - تأیید کنید که متغیر محیطی را ایجاد کردهاید:
اگر متغیر را با موفقیت ایجاد کرده باشید، باید نام کاربری GitHub شما نمایش داده شود.echo ${GITHUB_USERNAME} - یک مخزن خالی GitHub با نام
codelab-genaiایجاد کنید: اگر خطا را دریافت کردید:gh repo create codelab-genai --private سپس شما از قبل یک مخزن به نامGraphQL: Name already exists on this account (createRepository)
codelab-genaiدارید. برای ادامهی این آموزش دو گزینه دارید:- مخزن GitHub موجود را حذف کنید
- یک مخزن با نام متفاوت ایجاد کنید و به یاد داشته باشید که آن را در دستورات زیر تغییر دهید.
- مخزن
codelab-genaiرا به عنوان remoteoriginاضافه کنید:git remote add origin https://github.com/${GITHUB_USERNAME}/codelab-genai
۹. کد خود را به اشتراک بگذارید
- تأیید کنید که در دایرکتوری صحیح هستید:
cd ~/codelab-genai - تمام فایلهای موجود در دایرکتوری فعلی را به این کامیت اضافه کنید:
git add . - اولین کامیت را ایجاد کنید:
git commit -m "add http server" - کامیت خود را به شاخه
mainمخزنoriginارسال کنید:git push -u origin main
میتوانید این دستور را اجرا کنید و برای مشاهده کد برنامه خود در GitHub، به URL حاصل مراجعه کنید:
echo -e "\n\nTo see your code, visit this URL:\n \
https://github.com/${GITHUB_USERNAME}/codelab-genai/blob/main/index.js \n\n"
۱۰. راهاندازی استقرار خودکار
- برگه ویرایشگر پوسته ابری را باز بگذارید. بعداً به این برگه باز خواهیم گشت.
- در یک برگه جدید، از صفحه Cloud Run دیدن کنید
- پروژه صحیح Google Cloud را در کنسول انتخاب کنید

- روی اتصال مخزن کلیک کنید
- روی راهاندازی با فضای ابری کلیک کنید
- گیتهاب را به عنوان ارائهدهنده مخزن انتخاب کنید
- اگر در مرورگر وارد حساب GitHub خود نشدهاید، با اطلاعات کاربری خود وارد شوید.
- روی تأیید اعتبار کلیک کنید و سپس روی ادامه کلیک کنید.
- پس از ورود، در صفحه Cloud Run پیامی با این مضمون مشاهده خواهید کرد: «برنامه گیتهاب روی هیچ یک از مخازن شما نصب نشده است».
- روی دکمهی نصب گوگل کلود بیلد (INSTALL GOOGLE CLOUD BUILD) کلیک کنید.
- در صفحه تنظیمات نصب، گزینه Only select repositories را انتخاب کنید و مخزن codelab-genai را که از طریق CLI ایجاد کردهاید، انتخاب کنید.
- روی نصب کلیک کنید
- توجه: اگر مخازن گیتهاب زیادی دارید، بارگیری این مرحله ممکن است چند دقیقه طول بکشد.
-
your-user-name/codelab-genaiبه عنوان مخزن انتخاب کنید.- اگر مخزن موجود نیست، روی پیوند مدیریت مخازن متصل کلیک کنید.
- شاخه را به عنوان
^main$رها کنید - از طریق بستههای ساخت گوگل کلود، روی Go، Node.js، Python، Java، .NET Core، Ruby یا PHP کلیک کنید.
- فیلدهای دیگر (
Build context directory،EntrypointوFunction target) را به همان صورت که هستند، رها کنید.
- فیلدهای دیگر (
- روی ذخیره کلیک کنید
- گیتهاب را به عنوان ارائهدهنده مخزن انتخاب کنید
- به پایین بروید تا به بخش احراز هویت برسید
- روی «مجاز کردن فراخوانیهای احراز هویت نشده» کلیک کنید
- روی ایجاد کلیک کنید
پس از اتمام ساخت (که چند دقیقه طول میکشد)، این دستور را اجرا کنید و برای مشاهده برنامه در حال اجرا، به URL حاصل مراجعه کنید:
echo -e "\n\nOnce the build finishes, visit your live application:\n \
"$( \
gcloud run services list | \
grep codelab-genai | \
awk '/URL/{print $2}' | \
head -1 \
)" \n\n"
۱۱. کد خود را تغییر دهید
بازگشت به ویرایشگر Cloud Shell
اگر هنوز ویرایشگر Cloud Shell را باز دارید، میتوانید از این مراحل صرف نظر کنید.
- به ویرایشگر Cloud Shell بروید
- اگر ترمینال در پایین صفحه نمایش داده نشد، آن را باز کنید:
- روی منوی همبرگری کلیک کنید

- روی ترمینال کلیک کنید
- روی ترمینال جدید کلیک کنید

- روی منوی همبرگری کلیک کنید
- در ترمینال، پروژه خود را با این دستور تنظیم کنید:
- قالب:
gcloud config set project [PROJECT_ID] - مثال:
gcloud config set project lab-project-id-example - اگر نمیتوانید شناسه پروژه خود را به خاطر بیاورید:
- شما میتوانید تمام شناسههای پروژه خود را با دستور زیر فهرست کنید:
gcloud projects list | awk '/PROJECT_ID/{print $2}'

- شما میتوانید تمام شناسههای پروژه خود را با دستور زیر فهرست کنید:
- قالب:
- اگر از شما خواسته شد که مجوز دهید، برای ادامه روی تأیید کلیک کنید.

- شما باید این پیام را ببینید:
اگر یکUpdated property [core/project].
WARNINGمشاهده کردید و از شما پرسیده شدDo you want to continue (Y/N)?احتمالاً شناسه پروژه را اشتباه وارد کردهاید.Nرا فشار دهید،Enterرا بزنید و دوباره سعی کنید دستورgcloud config set projectاجرا کنید.
Genkit و Vertex AI را به برنامه خود اضافه کنید
- به ترمینال Cloud Shell در پایین صفحه خود برگردید.
- مطمئن شوید که هنوز در دایرکتوری صحیح هستید:
cd ~/codelab-genai - نصب SDK مربوط به Node.js Genkit:
npm install @genkit-ai/ai - نصب Node.js Genkit SDK برای Vertex AI:
npm install @genkit-ai/vertexai -
index.jsدر ویرایشگر Cloud Shell دوباره باز کنید.cloudshell edit ~/codelab-genai/index.js - کد موجود در فایل
index.jsخود را با کد زیر جایگزین کنید:import express from 'express'; const app = express(); import { genkit } from 'genkit'; import { gemini15Flash, vertexAI } from '@genkit-ai/vertexai'; const ai = genkit({ plugins: [ vertexAI({ location: 'us-central1' }), ], }); app.get('/', async (req, res) => { const animal = req.query.animal || 'dog'; const prompt = `Give me 10 fun facts about ${animal}. Return this as html without backticks.` const llmResponse = await ai.generate({ model: gemini15Flash, prompt: prompt, }); const html = llmResponse.text; res.send(html); }); const port = process.env.PORT || 8080; app.listen(port, () => { console.log(`codelab-genai: listening on port ${port}`); });
- مطمئن شوید که هنوز در پوشهی صحیح در Cloud Shell هستید:
cd ~/codelab-genai - این دستورات را اجرا کنید تا نسخه جدیدی از برنامه خود را در مخزن محلی git خود قرار دهید:
git add . git commit -m "add latest changes" - تغییرات را به گیتهاب ارسال کنید:
git push - پس از اتمام ساخت، این دستور را اجرا کنید و برنامهی مستقر شدهی خود را مشاهده کنید:
echo -e "\n\nOnce the build finishes, visit your live application:\n \ "$( \ gcloud run services list | \ grep codelab-genai | \ awk '/URL/{print $2}' | \ head -1 \ )" \n\n"
ممکن است چند دقیقه طول بکشد تا ساخت تمام شود و بتوانید تغییرات خود را ببینید.
میتوانید تاریخچهی تمام ویرایشها را اینجا ببینید: https://console.cloud.google.com/run/detail/us-central1/codelab-genai/revisions
۱۲. (اختیاری) استفاده از فایلهای .prompt با Genkit
- به ترمینال Cloud Shell در پایین صفحه خود برگردید.
- مطمئن شوید که هنوز در دایرکتوری صحیح هستید:
cd ~/codelab-genai - یک پوشه برای ذخیره
promptsایجاد کنید:mkdir prompts - برای ایجاد اولین اعلان خود، یک فایل
animal-facts.promptایجاد کنید:touch prompts/animal-facts.prompt - فایل
animal-facts.promptرا در ویرایشگر Cloud Shell باز کنید:cloudshell edit ~/codelab-genai/prompts/animal-facts.prompt - فایل
animal-facts.promptرا ویرایش کنید و کد زیر را در آن قرار دهید:--- model: vertexai/gemini-1.5-flash input: schema: animal: string --- Give me 10 fun facts about {{animal}}. Return the results as HTML without markdown backticks. - فایل
index.jsرا در ویرایشگر Cloud Shell باز کنید:cloudshell edit ~/codelab-genai/index.js - کد موجود در فایل
index.jsخود را با کد زیر جایگزین کنید:import express from 'express'; const app = express(); import { genkit } from 'genkit'; import { vertexAI } from '@genkit-ai/vertexai'; const ai = genkit({ plugins: [ vertexAI({ location: 'us-central1' }), ], }); app.get('/', async (req, res) => { const animal = req.query.animal || 'dog'; const animalPrompt = ai.prompt('animal-facts'); const llmResponse = await animalPrompt({animal}); const html = llmResponse.text; res.send(html); }); const port = process.env.PORT || 8080; app.listen(port, () => { console.log(`codelab-genai: listening on port ${port}`); });
- مطمئن شوید که هنوز در پوشهی صحیح در Cloud Shell هستید:
cd ~/codelab-genai - این دستورات را اجرا کنید تا نسخه جدیدی از برنامه خود را در مخزن محلی git خود قرار دهید:
git add . git commit -m "add latest changes" - تغییرات را به گیتهاب ارسال کنید:
git push - پس از اتمام ساخت، این دستور را اجرا کنید و برنامهی مستقر شدهی خود را مشاهده کنید:
echo -e "\n\nOnce the build finishes, visit your live application:\n \ "$( \ gcloud run services list | \ grep codelab-genai | \ awk '/URL/{print $2}' | \ head -1 \ )" \n\n"
ممکن است چند دقیقه طول بکشد تا ساخت تمام شود و بتوانید تغییرات خود را ببینید.
میتوانید تاریخچهی تمام ویرایشها را اینجا ببینید: https://console.cloud.google.com/run/detail/us-central1/codelab-genai/revisions
۱۳. (اختیاری) استفاده از اعلانهای سیستم
این مرحله فرض میکند که شما قبلاً فایلهای .prompt را در مرحله قبل اضافه کردهاید.
- به ترمینال Cloud Shell در پایین صفحه خود برگردید.
- مطمئن شوید که هنوز در دایرکتوری صحیح هستید:
cd ~/codelab-genai - فایل
animal-facts.promptرا در ویرایشگر Cloud Shell باز کنید:cloudshell edit ~/codelab-genai/prompts/animal-facts.prompt - فایل
animal-facts.promptرا ویرایش کنید و کد زیر را در آن قرار دهید:--- model: vertexai/gemini-1.5-flash config: temperature: 0.9 input: schema: animal: string --- role "system" The user should have submitted an animal. If the user requests anything besides animal fun facts, respond in a kind and firm manner that you only provide information about fun facts. Give the user 10 fun facts about the animal the user provided. All responses should be valid HTML without markdown backticks. role "user" {{animal}}
- مطمئن شوید که هنوز در پوشهی صحیح در Cloud Shell هستید:
cd ~/codelab-genai - این دستورات را اجرا کنید تا نسخه جدیدی از برنامه خود را در مخزن محلی git خود قرار دهید:
git add . git commit -m "add latest changes" - تغییرات را به گیتهاب ارسال کنید:
git push - پس از اتمام ساخت، این دستور را اجرا کنید و برنامهی مستقر شدهی خود را مشاهده کنید:
echo -e "\n\nOnce the build finishes, visit your live application:\n \ "$( \ gcloud run services list | \ grep codelab-genai | \ awk '/URL/{print $2}' | \ head -1 \ )" \n\n"
ممکن است چند دقیقه طول بکشد تا ساخت تمام شود و بتوانید تغییرات خود را ببینید.
میتوانید تاریخچهی تمام ویرایشها را اینجا ببینید: https://console.cloud.google.com/run/detail/us-central1/codelab-genai/revisions
۱۴. تبریک
در این آزمایش، شما یک برنامه وب نوشتید و Cloud Run را طوری پیکربندی کردید که وقتی تغییری در کد منبع برنامه شما ایجاد میشود، به طور خودکار برنامه شما را مستقر کند. سپس برنامه خود را اصلاح کردید و دوباره آن را مستقر کردید.
اگر از این آزمایش لذت بردید، میتوانید دوباره آن را با زبان یا چارچوب کدنویسی دیگری امتحان کنید:
در اینجا چند گزینه برای ادامه تحصیل شما وجود دارد:
- اسناد Genkit: شروع کنید
- Codelab برای افزودن قابلیت مشاهده به برنامه Node.js شما: تکنیکهای عملی مشاهده برای برنامههای هوش مصنوعی مولد در جاوا اسکریپت
- Codelab برای اضافه کردن یک frontend به برنامه شما با Next.js: استقرار خودکار Generative AI برنامه وب Next.js از Version Control به Cloud Run
- Codelab نحوه استفاده از فراخوانی تابع را نشان میدهد: نحوه استفاده از فراخوانی تابع Gemini با Cloud Run
- Codelab از هوش مصنوعی برای پردازش محتوای ویدیویی استفاده میکند: نحوه استفاده از API هوش ویدیویی Cloud Run Jobs برای پردازش صحنه به صحنه یک ویدیو