از ایده تا اجرا: اولین اپلیکیشن شما در فضای ابری گوگل در سال ۲۰۲۵

۱. طرح اولیه، پایه و اساس را بنا نهادن

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

پروژه ابری گوگل چیست؟

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

اگرچه تمرکز امروز ما بر روی یک پروژه است، اما درک جایگاه آن در ساختار بزرگتری که شرکت‌ها استفاده می‌کنند مفید است. گوگل کلود همه چیز را در یک سلسله مراتب واضح و از بالا به پایین سازماندهی می‌کند.

Organization (The entire Corporation, e.g., "MegaCorp Inc.")
└── Folders (The Corporate Divisions, e.g., "Research & Development")
    ├── Project (A specific team's lab, e.g., "Project Phoenix - R&D")
    │   └── Resources (The tools in the lab, e.g., a specific server)
    └── Project (Another team's workshop, e.g., "Q4 Marketing Campaign")
        └── Resources (The tools for that campaign, e.g., a storage bucket)

در اینجا سطوح آن سلسله مراتب، از بالا به پایین، آمده است:

  1. گره سازمانی:
    • این دفتر مرکزی کل شرکت است (مثلاً yourcompany.com ). این دفتر در بالاترین قسمت قرار دارد و جایی است که سیاست‌های امنیتی و صورتحساب در سطح شرکت تعیین می‌شود. برای دوره آزمایشی رایگان Google Cloud، معمولاً بدون یک گره سازمانی فعالیت می‌کنید که برای یادگیری کاملاً مناسب است.
  2. پوشه‌ها:
    • اینها بخش‌ها یا دپارتمان‌های درون شرکت هستند (مثلاً مهندسی، مالی). آنها یک لایه اختیاری هستند که برای گروه‌بندی پروژه‌ها و اعمال سیاست‌ها به کل تیم‌ها به طور همزمان استفاده می‌شوند. ما در این کارگاه از پوشه‌ها استفاده نخواهیم کرد.
  3. پروژه‌ها (تمرکز ما):
    • این کارگاه یا آزمایشگاه یک تیم خاص است. اینجا جایی است که کار واقعی اتفاق می‌افتد و حیاتی‌ترین سطح برای کارگاه ماست. تمام منابعی که ایجاد می‌کنید باید درون یک پروژه باشند. یک پروژه همچنین سطحی است که در آن APIها (سرویس‌ها) را فعال می‌کنید و یک حساب صورتحساب را پیوند می‌دهید.
  4. منابع:
    • اینها ابزارها و ماشین‌های مجزای داخل کارگاه هستند. برنامه Cloud Run که ما مستقر خواهیم کرد یک منبع است. یک ماشین مجازی، یک پایگاه داده یا یک مخزن ذخیره‌سازی، همگی نمونه‌هایی از منابع هستند.

عملی: ایجاد و پیکربندی پروژه

  • اعتبار خود را مطالبه کنید goo.gle/devfest-boston-ai/ . و شرایط خدمات پلتفرم ابری گوگل را بپذیرید. پس از اعمال، پیامی را مشاهده خواهید کرد که نشان می‌دهد اعتبار اعمال شده است. اعتبار اعمال شده
  • به بروید.
  • در نوار پیمایش بالا، روی «انتخاب یک پروژه» و سپس «پروژه جدید» کلیک کنید. یافتن پروژه
  • برای پروژه خود یک نام منحصر به فرد (مثلاً idea-to-launch-yourname ) انتخاب کنید و روی ایجاد (Create) کلیک کنید. گزینه "بدون سازمان" (No Organization) را انتخاب کنید. پروژه جدید
  • مطمئن شوید که پروژه جدید شما از منوی کشویی بالای صفحه انتخاب شده است.

چرا صورتحساب اینقدر مهم است؟

حساب صورتحساب، ستون فقرات مالی پروژه شماست؛ این «کارت اعتباری موجود در پرونده» است که هزینه منابعی را که استفاده می‌کنید، پرداخت می‌کند. برای این کارگاه، شما از نسخه آزمایشی رایگان Google Cloud استفاده می‌کنید که اعتبار رایگان در اختیار شما قرار می‌دهد. این یک محیط امن و ایمن است. پس از استفاده از اعتبار یا پایان دوره آزمایشی، مگر اینکه حساب خود را به صورت دستی ارتقا دهید ، به طور خودکار از شما هزینه کسر نمی‌شود . درک صورتحساب اولین قدم برای کنترل هزینه‌ها است. بهترین شیوه‌ها مانند تنظیم بودجه و هشدارها به شما این امکان را می‌دهد که در صورت نزدیک شدن هزینه‌هایتان به یک حد مشخص، اعلان‌های ایمیلی دریافت کنید و از هرگونه غافلگیری جلوگیری کنید.

عملی: حساب صورتحساب خود را پیوند دهید

  • به بروید.
  • روی پیوند دادن یک حساب صورتحساب کلیک کنید. پرداخت از طریق لینک
  • از منوی کشویی، حساب پرداخت آزمایشی پلتفرم ابری گوگل (Google Cloud Platform Trial Billing Account) را انتخاب کنید و روی تنظیم حساب (Set account) کلیک کنید. (اگر منوی کشویی را نمی‌بینید، یک دقیقه صبر کنید تا اعتبار اعمال شود و صفحه را دوباره بارگیری کنید.)

عملی: تنظیم هشدار بودجه (بهترین روش)

حالا که صورتحساب شما فعال شده است، بیایید یک روش مهم و کاربردی برای کنترل هزینه‌ها انجام دهیم: تعیین بودجه. این کار باعث نمی‌شود که وقتی به مبلغ مورد نظر رسیدید، خدمات شما متوقف شود؛ در عوض، ایمیل‌هایی برای شما ارسال می‌شود تا همیشه از هزینه‌های خود مطلع باشید.

  1. در منوی سمت چپ صفحه صورتحساب، روی «بودجه‌ها و هشدارها» کلیک کنید.
  2. در بالای صفحه، روی + ایجاد بودجه کلیک کنید. ایجاد بودجه
  3. بودجه خود را نامگذاری کنید: یک نام ساده مانند Workshop-Alert به آن بدهید.
  4. محدوده: تنظیمات پیش‌فرض را که باید پروژه فعلی شما را انتخاب کنند، رها کنید. روی بعدی کلیک کنید. ایجاد بودجه
  5. مبلغ: در بخش «مبلغ بودجه»، برای «نوع مبلغ» ، مبلغ مشخص‌شده را انتخاب کنید. یک مبلغ کم، مثلاً 10 ، وارد کنید. این یعنی بودجه ما ۱۰ دلار است. روی بعدی کلیک کنید. ایجاد بودجه
  6. اقدامات: اینجا جایی است که هشدارها را تنظیم می‌کنید. به طور پیش‌فرض، وقتی هزینه‌های شما از ۵۰٪، ۹۰٪ و ۱۰۰٪ از مبلغ بودجه‌تان (۵، ۹ و ۱۰ دلار) بیشتر شود، هشدارهایی تنظیم می‌شود.
    • در قسمت «اعلان‌های ایمیل»، مطمئن شوید که گزینه‌ی «هشدارهای ایمیل به مدیران و کاربران صورتحساب» تیک خورده است. این کار اعلان‌ها را به آدرس ایمیل مرتبط با حساب شما ارسال می‌کند.
  7. روی پایان کلیک کنید. ایجاد بودجه

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

سرویس‌ها چیستند و چرا آنها را فعال می‌کنیم؟

حالا که مرکز فرماندهی خود را در آزمایشگاه خصوصی‌تان راه‌اندازی کرده‌اید، بیایید در مورد تجهیزات سنگین موجود برای شما صحبت کنیم. گوگل کلود بیش از ۲۰۰ محصول متمایز، از پایگاه‌های داده گرفته تا مدل‌های هوش مصنوعی، ارائه می‌دهد. هر یک از این‌ها یک سرویس نامیده می‌شوند. کلود ران را به عنوان «سرویس حمل و نقل و لجستیک خودکار» و جمینی را به عنوان «سرویس اختراع و نمونه‌سازی هوش مصنوعی» در نظر بگیرید. برای استفاده از هر یک از این سرویس‌های قدرتمند، ابتدا باید API (رابط برنامه‌نویسی کاربردی) مربوط به آن را برای پروژه خود فعال کنید.

نمای کلی خدمات

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

فعال کردن یک API به این صورت است که به یک ایستگاه کاری خاص در آزمایشگاه خود - مانند "ایستگاه نمونه‌سازی هوش مصنوعی" - بروید و کلید برق اصلی آن را در موقعیت "روشن" قرار دهید.

اما چرا همه چیز به طور پیش‌فرض خاموش است؟ این یک انتخاب طراحی عمدی به چند دلیل مهم است:

  • امنیت: این اصل، اصل حداقل امتیاز را در سطح پروژه اجرا می‌کند. اگر از یک سرویس استفاده نمی‌کنید، اتصالات آن به پروژه شما غیرفعال است و «سطح حمله» بالقوه را کاهش می‌دهد.
  • مدیریت و کنترل هزینه: شروع استفاده از یک سرویس بالقوه پرهزینه نیازمند یک اقدام آگاهانه و قابل حسابرسی است. این امر از استفاده تصادفی جلوگیری می‌کند و به سازمان‌ها کمک می‌کند تا ابزارهایی را که تیم‌هایشان استفاده می‌کنند، کنترل کنند.
  • سادگی: محیط پروژه شما را تمیز نگه می‌دارد. مجوزها و داشبوردهای شما با گزینه‌هایی برای سرویس‌هایی که قصد استفاده از آنها را ندارید، شلوغ نمی‌شوند.

عملی: محیط خود را مقداردهی اولیه کنید

  1. فعال کردن Vertex AI، Cloud Run، Cloud Build و Compute API:
    • در صفحه جزئیات API، روی دکمه آبی رنگ فعال‌سازی (Enable) کلیک کنید. منتظر بمانید تا فرآیند تکمیل شود. فعال کردن سرویس

۲. ایمن‌سازی برنامه شما: چه کسی (یا چه چیزی) می‌تواند برنامه شما را کنترل کند؟

مقدمه مفهومی

برنامه‌های ما روی اینترنت فعال هستند که دستاورد فوق‌العاده‌ای است. اما این یک سوال اساسی را مطرح می‌کند: چطور به هر یک از این موارد اجازه داده شده است؟ وقتی کد خود را مستقر می‌کنید، مجموعه‌ای از «دست دادن»های امن و مبتنی بر اجازه در پشت صحنه اتفاق می‌افتد. درک این موارد، کلید امنیت ابری است.

همه اینها توسط مدیریت هویت و دسترسی (IAM) مدیریت می‌شود.

  • فرمول اصلی IAM IAM بر اساس یک اصل ساده اما قدرتمند عمل می‌کند: چه کسی می‌تواند چه کاری را روی کدام منبع انجام دهد؟
  • دو نوع «چه کسی» (مدیران) در کارگاه ما تاکنون، دو نوع اساسی هویت را بررسی کرده‌ایم:
    1. کاربران: این شما هستید! هویتی که به یک انسان گره خورده است، مانند حساب جیمیل شخصی شما.
    2. حساب‌های سرویس: اینها هویت‌های خاص و غیرانسانی برای برنامه‌ها و سرویس‌های شما هستند. آنها را به عنوان یک نشان شناسایی برای کد خود در نظر بگیرید. وقتی یک سرویس Google Cloud (مانند Cloud Build) نیاز به تعامل با سرویس دیگری (مانند Artifact Registry برای ذخیره یک کانتینر) دارد، از حساب سرویس خود برای اثبات مجوز خود استفاده می‌کند.

هنگام استقرار هر برنامه‌ای، از هر دو نوع هویت استفاده شده است:

  • حساب کاربری شما مجوز شروع استقرار را داشت.
  • یک حساب کاربری برای سرویس Cloud Build مجوز ساخت کد شما و ذخیره کانتینر حاصل را داشت.

مدیریت دسترسی

بیایید از کنسول IAM برای بررسی مجوزهایی که استقرار ما را ممکن ساخته‌اند استفاده کنیم و سپس به کاربر دیگری دسترسی خاصی اعطا کنیم.

  1. بررسی: به کنسول IAM بروید
    • به بروید
    • این صفحه، داشبورد امنیتی پروژه شماست. این صفحه، فهرستی از تمام «مدیران» (یا «چه کسی») که هر سطحی از دسترسی به پروژه شما را دارند، ارائه می‌دهد.
  2. هویت خود را پیدا کنید (کاربر)
    • در لیست مدیران، آدرس ایمیل خود را پیدا کنید. توجه داشته باشید که نقش آن "مالک" است. نقش مالک، مجوز کامل و نامحدود برای انجام هر کاری در پروژه را اعطا می‌کند. به همین دلیل است که شما مجاز به فعال کردن APIها و اجرای دستور gcloud run deploy هستید.
  3. پیدا کردن هویت سرویس (حساب سرویس)
    • حالا، به دنبال یک حساب اصلی با نامی مانند [PROJECT_NUMBER]-compute@developer.gserviceaccount.com بگردید. این حساب، حساب پیش‌فرض سرویس مورد استفاده توسط سرویس Cloud Build است.
    • به نقش آن نگاه کنید. نقشی مانند "عامل سرویس ساخت ابری" خواهد داشت. این نقش شامل مجوزهای خاص مورد نیاز برای انجام کارش، مانند دریافت کد منبع و نوشتن تصاویر کانتینر در رجیستری است. این هویتی است که کارهای سنگین استقرار شما را انجام داده است.
  4. مدیریت دسترسی (وظیفه عملی)
    • حالا، بیایید یک کار امنیتی مرتبط انجام دهیم. تصور کنید یک همکار جدید باید بتواند عملکرد را رصد کند و گزارش‌های مربوط به دو برنامه‌ای که ما به تازگی مستقر کرده‌ایم ( fact-app-manual و fact-app-cli ) را بررسی کند، اما به دلایل امنیتی، او نباید بتواند نسخه جدیدی را مستقر کند یا آنها را حذف کند.
    • در بالای صفحه IAM، روی + اعطای دسترسی کلیک کنید.
    • در فیلد «مدیران جدید» ، یک آدرس ایمیل فرضی، مانند dev-intern@example.com ، وارد کنید.
    • در منوی کشویی «انتخاب یک نقش» ، از فیلتر برای یافتن و انتخاب نقش «Cloud Run Viewer» استفاده کنید. این نقش نمونه کاملی از اصل حداقل امتیاز است. این نقش، دسترسی فقط خواندنی را به‌طور خاص به سرویس‌های Cloud Run اعطا می‌کند و نه بیشتر. (یا می‌توانید از گزینه « به من کمک کنید نقش‌ها را انتخاب کنم » استفاده کنید)
    • روی ذخیره کلیک کنید.
  5. نتیجه را بررسی کنید
    • اکنون با موفقیت یک کاربر جدید اضافه کرده‌اید و به او نقشی جزئی و با حداقل امتیاز داده‌اید که مستقیماً با منابعی که در این کارگاه ایجاد کرده‌اید مرتبط است. آنها می‌توانند دو fact-app شما را ببینند، اما نمی‌توانند آنها را تغییر دهند. شما دیده‌اید که چگونه حساب‌های کاربری و حساب‌های سرویس با هم کار می‌کنند تا یک محیط ابری امن و قابل حسابرسی ایجاد کنند.

حالا، بیایید تمرین کنیم که نه به یک شخص، بلکه به یک برنامه یا سرویس دیگر مجوز بدهیم. تصور کنید یک ابزار خودکار خارجی، که با حساب سرویس vertex-express@... نمایش داده می‌شود، باید بتواند از سرویس‌های هوش مصنوعی در پروژه ما استفاده کند. ما باید نقش صحیح را به آن اعطا کنیم.

  1. به صفحه حساب‌های سرویس بروید:
    • همچنان در صفحه IAM هستید، به بخش حساب‌های سرویس (Service Accounts) بروید.
  2. حساب سرویس هدف را پیدا کنید:
    • در لیست حساب‌های سرویس، حسابی با نام vertex-express@ecstatic-acumen-{PROJECT_NUMBER}-c9.iam.gserviceaccount.com را پیدا کنید. (شما باید {PROJECT_NUMBER} با شماره پروژه واقعی خود جایگزین کنید). این همان هویتی است که می‌خواهیم به آن مجوز بدهیم.
  3. مدیریت مجوزهای حساب سرویس:
    • در ستون «اقدامات» در سمت راست، روی نقطه سه‌گانه کلیک کنید، جایی که یک منوی کشویی مشاهده خواهید کرد.
    • برای مدیریت کارهایی که این حساب سرویس می‌تواند انجام دهد، روی مدیریت مجوزها کلیک کنید.
  4. اعطای نقش "کاربر هوش مصنوعی ورتکس":
    • در منوی کشویی «اختصاص نقش‌ها» ، از فیلتر برای یافتن و انتخاب نقش «کاربر هوش مصنوعی ورتکس» استفاده کنید.
    • روی ذخیره کلیک کنید.

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

۳. کدنویسی با دستیار هوش مصنوعی

مقدمه مفهومی

هر برنامه‌ای با کد شروع می‌شود. به طور سنتی، این بخش، زمان‌برترین بخش است. امروز، ما با یک شریک هوش مصنوعی، Gemini، برای تسریع این فرآیند همکاری خواهیم کرد. اما قبل از اینکه اولین دستور خود را بنویسیم، درک چشم‌انداز ابزارهای هوش مصنوعی ارائه شده توسط Google Cloud مهم است.

هوش مصنوعی گوگل را می‌توان در سه دسته اصلی، از ساده‌ترین تا قدرتمندترین، دسته‌بندی کرد:

شما می‌توانید از طریق دو رابط اصلی که هر کدام برای هدف متفاوتی طراحی شده‌اند، با «موتور خلاق» (Gemini) تعامل داشته باشید.

  • Google AI Studio ( aistudio.google.com )
    • چیست؟: یک ابزار رایگان و مبتنی بر وب برای نمونه‌سازی سریع و آزمایش با Gemini. این سریع‌ترین راه برای شروع نوشتن دستورالعمل‌ها و مشاهده قابلیت‌های مدل‌ها است.
    • نحوه کار: شما می‌توانید فقط با حساب گوگل خود از آن استفاده کنید. برای استفاده از آن در یک برنامه، یک کلید API ایجاد می‌کنید. برای استفاده از آن در این کارگاه، باید سرویس "Generative Language API" را در پروژه خود فعال کنید.
    • قیاس: استودیوی هوش مصنوعی مانند کتابخانه عمومی یا کارگاه آزاد است. به راحتی می‌توان وارد آن شد و به صورت رایگان با ابزارها شروع به آزمایش کرد.
  • هوش مصنوعی ورتکس
    • چیست؟ این پلتفرم جامع گوگل کلود برای مدیریت کل چرخه عمر یادگیری ماشین است. این یک میز کار حرفه‌ای کامل است که در آن می‌توانید از مدل‌های پایه مانند Gemini استفاده کنید، اما همچنین مدل‌های یادگیری ماشین سفارشی خود را از ابتدا بسازید، آموزش دهید و مستقر کنید. این پلتفرم برای امنیت، مقیاس‌پذیری و مدیریت در سطح سازمانی ساخته شده است. همچنین نسخه‌ای در سطح سازمانی از همان ابزارها را ارائه می‌دهد که کاملاً در پروژه گوگل کلود شما ادغام شده است.
    • نحوه کار: از همان مدل‌های قدرتمند استفاده می‌کند اما تمام ویژگی‌های امنیتی، کنترل دسترسی (IAM) و مدیریت داده‌ها را از پروژه شما به ارث می‌برد. این سرویسی است که ما در بخش 1 با فعال کردن API aiplatform.googleapis.com فعال کردیم.
    • قیاس: Vertex AI آزمایشگاه تحقیق و توسعه خصوصی، امن و شرکتی شماست. هر کاری که انجام می‌دهید ثبت، ایمن و به سایر منابع پروژه شما متصل می‌شود.

آموزش عملی: تولید کد برنامه در Vertex AI Studio

بیایید ببینیم وقتی برنامه خود را با استفاده از ابزارهای بصری درون Vertex AI می‌سازیم چه اتفاقی می‌افتد.

  1. به استودیوی هوش مصنوعی ورتکس بروید:
  2. تولید وب‌سایت:
    • در کادر اعلان، دقیقاً همان درخواستی را که بعداً استفاده خواهیم کرد، وارد کنید:
    Create the code for a simple web application that shows Halloween fun facts. The application should be built using the Python functions_framework for Cloud Run. The entry point function must be named 'hello_http'. When a user visits the main page, the server should randomly display one fact from a list. The page should have a separate 'index.html' file for the structure and a 'style.css' file to give it a spooky theme 
    
    • Enter را فشار دهید. مدل کد را تولید می‌کند، احتمالاً در سه بلوک مجزا: یکی برای پایتون ( main.py )، یکی برای HTML ( index.html ) و یکی برای CSS ( style.css ).

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

۴. استقرار در سراسر جهان با Cloud Run

مقدمه مفهومی

کد ما تولید شده است، اما فقط متنی در مرورگر است. برای ارائه خدمات به مشتریان، باید روی یک سرور اجرا شود. Cloud Run یک پلتفرم "بدون سرور" است، به این معنی که ما کد را ارائه می‌دهیم و گوگل همه چیز دیگر را مدیریت می‌کند: سرورها، مقیاس‌پذیری و امنیت. قدرتمندترین ویژگی آن مقیاس‌پذیری به صفر است - اگر کسی از برنامه شما بازدید نکند، شما هیچ هزینه‌ای برای زمان بیکاری پرداخت نمی‌کنید.

  • «بدون سرور» چیست؟ به طور سنتی، استقرار یک برنامه به معنای اجاره یک سرور (یک ماشین مجازی)، نصب یک سیستم عامل، پیکربندی شبکه و امنیت و نگهداری مداوم آن بود. بدون سرور یک رویکرد ابری مدرن است که در آن شما، به عنوان توسعه‌دهنده، فقط روی کد خود تمرکز می‌کنید. شما کد خود را به سرویسی مانند Cloud Run تحویل می‌دهید و این سرویس همه چیز دیگر را مدیریت می‌کند: سرورها، مقیاس‌پذیری، امنیت و شبکه.
  • نحوه کار Cloud Run: جادوی مقیاس‌پذیری وقتی در Cloud Run مستقر می‌شوید، کد شما را در یک کانتینر (یک بسته استاندارد و قابل حمل از برنامه شما و تمام وابستگی‌های آن) بسته‌بندی می‌کند. وقتی کاربری از URL برنامه شما بازدید می‌کند، Cloud Run فوراً کانتینر شما را برای رسیدگی به درخواست شروع می‌کند. اگر هزار کاربر به طور همزمان بازدید کنند، به طور خودکار هزار نسخه را شروع می‌کند. قدرتمندترین ویژگی، مقیاس‌پذیری به صفر است. وقتی کسی از برنامه شما بازدید نمی‌کند، Cloud Run تعداد کانتینرهای در حال اجرا را تا صفر کاهش می‌دهد. این بدان معناست که شما مطلقاً هیچ هزینه‌ای برای زمان بیکاری پرداخت نمی‌کنید، که آن را فوق‌العاده مقرون به صرفه می‌کند.

برای اولین استقرار، از ویرایشگر درون‌خطی کنسول Cloud Run استفاده خواهیم کرد و کد خود را به صورت دستی در جای خود کپی می‌کنیم.

عملی: استقرار برنامه شما

  1. جادوگر ایجاد Cloud Run را شروع کنید:
    • به بروید
    • در بالای صفحه، روی + نوشتن یک تابع کلیک کنید.
  2. پیکربندی سرویس:
    • برای ایجاد یک تابع، از ویرایشگر درون‌خطی استفاده کنید .
    • برای سرویس خود یک نام انتخاب کنید: fact-app-manual .
    • یک نسخه Runtime از Python 3.13 انتخاب کنید.
    • یک منطقه را انتخاب کنید us-central1 .
    • گزینه «اجازه دسترسی عمومی» را انتخاب کنید.
    • تمام تنظیمات دیگر را به صورت پیش‌فرض باقی بگذارید.
    • روی دکمه CREATE در پایین کلیک کنید.
  3. کد خود را وارد کنید:
    • یک ویرایشگر با فایل پیش‌فرض main.py و requirements.txt مشاهده خواهید کرد.
    • main.py: به تب Vertex AI Studio خود بروید. کل بلوک کد پایتون را کپی کنید. به ویرایشگر Cloud Run برگردید و محتوای پیش‌فرض main.py با کدی که کپی کرده‌اید جایگزین کنید .
    • requirements.txt: * روی فایل requirements.txt در ویرایشگر کلیک کنید. کد پایتون به functions-framework نیاز دارد. محتوای فایل را با موارد زیر جایگزین کنید:
      functions-framework
      
    • index.html: در فایل اکسپلورر ویرایشگر، برای افزودن فایل جدید روی «+» کلیک کنید. نام فایل را index.html بگذارید. به تب Vertex AI Studio بروید، بلوک کد HTML را کپی کنید و آن را در این فایل index.html جدید جایگذاری کنید.
    • style.css: برای افزودن فایل جدید، روی «+» کلیک کنید. نام آن را style.css بگذارید. به تب Vertex AI Studio بروید، بلوک کد CSS را کپی کنید و آن را در این فایل style.css جدید جایگذاری کنید.
  4. سرویس را مستقر کنید:
    • وقتی سه فایل را به درستی در جای خود قرار دادید، روی دکمه‌ی «ذخیره و استقرار» کلیک کنید.
  5. به برنامه زنده خود دسترسی پیدا کنید:
    • استقرار چند دقیقه طول خواهد کشید. پس از اتمام، صفحه جزئیات سرویس با یک URL عمومی در بالای صفحه ظاهر می‌شود.
    • روی این URL کلیک کنید. برنامه شما اکنون فعال است! کار می‌کند، اما آن زمان کلی کپی-پیست دستی لازم بود.

۵. بهینه‌سازی گردش کار توسعه‌دهنده

این کنسول برای یادگیری عالی است، اما برای توسعه تکراری کند است. اکنون، گردش کار مورد نظر توسعه‌دهنده را خواهیم دید که با استفاده از Cloud Shell و Gemini CLI کل آن فرآیند چند مرحله‌ای را به یک مکالمه ساده تبدیل می‌کند.

کلود شل و رابط خط فرمان جمینی چیست؟

کلود شل یک کامپیوتر کامل لینوکس در مرورگر شماست که از قبل با ابزارهای توسعه‌دهنده مانند gcloud CLI (کنترل از راه دور شما برای گوگل کلود) بارگذاری شده است.

رابط خط فرمان Gemini یک دستیار کدنویسی تعاملی و مبتنی بر هوش مصنوعی است که در ترمینال شما قرار دارد.

اکستنشن‌های جمینی چیستند؟

رابط خط فرمان Gemini را به عنوان یک تلفن هوشمند قدرتمند در نظر بگیرید. به خودی خود، بسیار توانمند است. افزونه‌ها مانند برنامه‌هایی هستند که از فروشگاه برنامه نصب می‌کنید. آن‌ها به Gemini CLI قابلیت‌های جدید و تخصصی می‌دهند که به طور پیش‌فرض ندارد. به عنوان مثال، افزونه nanobanana یک "برنامه" است که Gemini CLI را به مدل‌های قدرتمند تولید تصویر گوگل متصل می‌کند و به ما امکان می‌دهد تصاویر را مستقیماً از خط فرمان تولید کنیم.

عملی: گردش کار ساده

  1. یک کلید API ایجاد کنید
    • به بروید
    • روی دکمه‌ی «+ایجاد کلیدهای API» کلیک کنید
    • این کلید را نگه دارید
  2. فعال‌سازی و پیکربندی Cloud Shell:
    • در بالای کنسول Google Cloud، روی آیکون فعال‌سازی پوسته ابری ( >_ ) کلیک کنید.
    • دستورات زیر را در ترمینال اجرا کنید تا محیط خود را تنظیم کنید، حتماً آن را با شناسه پروژه خود جایگزین کنید.
      # Set your Project ID
      export PROJECT_ID="[your-project-id-goes-here]"
      
      NANOBANANA_GOOGLE_API_KEY را تنظیم کنید. آن را با کلید API خود جایگزین کنید. (برای ادامه نصب، Y را بگویید.)
      gcloud config set project $PROJECT_ID
      
      # REPLACE with your API Key.
      export NANOBANANA_GOOGLE_API_KEY="[your-api-key-goes-here]"
      
      در ترمینال، برای نصب افزونه دستور زیر را اجرا کنید:
      # Configure the CLI to use your project with Vertex AI
      export GOOGLE_CLOUD_PROJECT=$PROJECT_ID
      export GOOGLE_CLOUD_LOCATION=us-central1
      export GOOGLE_GENAI_USE_VERTEXAI=true
      
      # Install the image generation extension
      gemini extensions install https://github.com/gemini-cli-extensions/nanobanana
      
  • ما از رابط خط فرمان Gemini، یک رابط خط فرمان قدرتمند که به عنوان دستیار کدنویسی هوش مصنوعی عمل می‌کند، استفاده خواهیم کرد. این رابط به ما امکان می‌دهد کدی را که می‌خواهیم به زبان انگلیسی ساده توصیف کنیم و ساختار آن را برای ما تولید می‌کند که به طور قابل توجهی سرعت توسعه را افزایش می‌دهد.
  1. شروع یک جلسه تعاملی هوش مصنوعی:
    • بیایید یک دایرکتوری جدید برای پروژه خود ایجاد کنیم و رابط خط فرمان Gemini را در حالت تعاملی آن اجرا کنیم. دستور زیر را در ترمینال اجرا کنید.
      mkdir ~/2025-website
      cd ~/2025-website
      cat <<EOF > .env
        GOOGLE_CLOUD_PROJECT=$PROJECT_ID
        GOOGLE_CLOUD_LOCATION=$GOOGLE_CLOUD_LOCATION
        GOOGLE_GENAI_USE_VERTEXAI=true
        NANOBANANA_GOOGLE_API_KEY=$NANOBANANA_GOOGLE_API_KEY
      EOF
      clear
      gemini --yolo
      
  2. تولید و تکرار روی برنامه شما:
    • اکنون در یک جلسه چت با دستیار هوش مصنوعی خود هستید. برای ایجاد کل وب‌سایت با یک دستور، عبارت زیر را وارد کنید:
      Write a simple web app that shows Halloween fun facts using the Python Flask. When a user visits the main page, it should show one random fact. Include a button that fetches and displays a new fact when clicked. Create a simple, clean index.html, a separate style.css with a spooky theme, and a requirements.txt file. After creating the files, attempt to start the web app locally on port 8080.
      
    • تست محلی: هوش مصنوعی فایل‌ها را ایجاد کرده و یک وب سرور را راه‌اندازی می‌کند. (گاهی اوقات بارگیری متوقف نمی‌شود، اگر می‌بینید که در تلاش برای راه‌اندازی سرور است، می‌توانید به مرحله بعدی بروید.)
    • روی نماد پیش‌نمایش وب در نوار ابزار Cloud Shell کلیک کنید، پیش‌نمایش را روی پورت ۸۰۸۰ انتخاب کنید تا سایت شما در یک برگه جدید ظاهر شود.
    • در رابط خط فرمان Gemini، برای لغو درخواست و یا درخواست Stop the web server از Gemini CLI، Esc را فشار دهید.
  3. وب‌سایت را با تصاویر تولید شده توسط هوش مصنوعی به‌روزرسانی کنید:
    • حالا، بیایید از افزونه‌مان استفاده کنیم. دستوری که با / شروع می‌شود، یک "دستور اسلش" است که به یک ابزار اشاره دارد، نه یک اعلان برای هوش مصنوعی.
      /generate 3 images of spooky halloween fun
      
    • این افزونه سه تصویر ایجاد می‌کند. حالا، بیایید از هوش مصنوعی بخواهیم وب‌سایت را برای استفاده از آنها تغییر دهد.
      Update the website so it will display and rotate between the 3 newly generated images each time the button is clicked. And do NOT start the server.
      
  4. آماده شدن برای استقرار:
    • Cloud Run کد را با استفاده از کانتینرها مستقر می‌کند. یک Dockerfile دستورالعملی برای ساخت یک کانتینر است. بیایید از هوش مصنوعی بخواهیم که یکی برای ما ایجاد کند.
      Create a Dockerfile suitable for deploying this Python Flask app to Cloud Run.
      
  5. استقرار با یک دستور واحد:
    • با دو بار فشردن CtrlC از محیط خط فرمان Gemini خارج شوید. یا در خط فرمان عبارت /quit را تایپ کنید.
    • اکنون، از رابط خط فرمان gcloud برای استقرار کل برنامه از دایرکتوری فعلی خود استفاده کنید.
      gcloud run deploy fact-app-cli \
        --source . \
        --region us-central1 \
        --allow-unauthenticated
      
  6. تفاوت را ببینید:
    • بعد از چند دقیقه، یک URL جدید برای وب‌سایت کاملاً مجهز و تولید شده توسط هوش مصنوعی خود دریافت خواهید کرد. به کنسول Cloud Run مراجعه کنید و هر دو سرویس را مشاهده خواهید کرد: fact-app-manual و fact-app-cli . شما همین الان سرعت و قدرت گردش کار توسعه‌دهنده خط فرمان را تجربه کرده‌اید.

تبریک می‌گویم

شما با موفقیت کل چرخه عمر توسعه در Google Cloud را به پایان رسانده‌اید. شما با یک پروژه خالی شروع کرده‌اید و اکنون:

  • یک پروژه امن با قابلیت صدور صورتحساب پیکربندی شد.
  • از یک دستیار هوش مصنوعی برای نوشتن یک برنامه کامل استفاده کردم.
  • آن برنامه را روی یک پلتفرم مقیاس‌پذیر و بدون سرور مستقر کردم.
  • یاد گرفتم که چگونه امنیت آن را با IAM مدیریت کنم.

اکنون شما مهارت‌های پایه‌ای لازم برای ساخت برنامه‌های پیچیده‌تر و توانمندتر در Google Cloud را دارید.