معمول است که چندین محیط از یک پایگاه کد مستقر شده باشند که هر کدام با پیکربندی کمی متفاوت هستند. به عنوان مثال، ممکن است بخواهید CPU و RAM کمتری را به محیط استیجینگ خود اختصاص دهید، یا ممکن است بخواهید مطمئن شوید که محیط تولید شما حداقل 1 نمونه را فعال و آماده برای ارائه درخواست ها نگه می دارد. همچنین ممکن است بخواهید بسته به محیط و منابعی که می خواهید استفاده کنید، متغیرها و اسرار محیطی مختلفی را مشخص کنید.
این راهنما نحوه استقرار یک محیط تولید و صحنه سازی را، هر کدام در یک پروژه Firebase جداگانه، شرح می دهد. با پیروی از همان اصول، می توانید در انواع مختلف محیط های دیگر مستقر شوید. برای کسب اطلاعات بیشتر در مورد محیطها، مرور کلی محیطها و بهترین روشهای عمومی برای راهاندازی پروژههای Firebase را بررسی کنید.
پیش نیازها
- کد برنامه شما قبلاً در GitHub ذخیره شده است.
- شما قبلاً یک پروژه مجزا برای هر یک از محیط های خود ایجاد کرده اید - برای مثال
my-production-firebase-project
وmy-staging-firebase-project
. مطمئن شوید که پروژه Firebase تولیدی خود را با نوع محیط "production" برچسب گذاری کنید. - در هر پروژه، یک App Hosting Backend ایجاد کردهاید که شاخه زنده آن به شاخه GitHub که میخواهید مستقر کنید (مانند
main
) تنظیم شده است. برای اطلاعات بیشتر به شروع با App Hosting مراجعه کنید.
مرحله 0: یک پیکربندی پیش فرض در apphosting.yaml ایجاد کنید
App Hosting از یک فایل پیکربندی به نام apphosting.yaml
برای مدیریت تنظیمات زمان اجرا (CPU، همزمانی، محدودیت های حافظه و غیره) و متغیرهای محیطی برنامه شما پشتیبانی می کند. همچنین از ارجاع به اسرار مدیریت شده با Cloud Secret Manager پشتیبانی می کند و بررسی منبع کنترل را ایمن می کند. برای اطلاعات بیشتر، پیکربندی یک باطن را ببینید.
برای شروع، یک فایل apphosting.yaml
در فهرست اصلی برنامه خود ایجاد کنید. این فایل پیکربندی بازگشتی است که زمانی استفاده می شود که یک فایل پیکربندی خاص محیطی پیدا نشود. مقادیر ذخیره شده در apphosting.yaml
باید پیش فرض هایی باشند که برای همه محیط ها امن باشند.
بخش های بعدی نحوه نادیده گرفتن مقادیر پیش فرض در apphosting.yaml
را برای محیط های خاص توضیح می دهد. این جریان مثال یک محیط صحنه سازی را ایجاد می کند.
مرحله 1: نام محیط را تنظیم کنید
هر پشتیبان App Hosting دارای یک تنظیم نام محیطی است. این فیلد برای نگاشت باطن شما به یک فایل پیکربندی خاص محیطی استفاده می شود و در هر زمان می توان آن را تغییر داد. شما فقط می توانید یک نام محیط را در هر باطن تنظیم کنید.
برای تنظیم نام محیط باطن خود،
- در کنسول Firebase، پروژه مرحلهبندی خود را انتخاب کنید (در این مثال، my-staging-firebase-project).
- App Hosting از ناوبری سمت چپ انتخاب کنید.
- روی مشاهده داشبورد در باطن انتخابی خود کلیک کنید.
- در برگه تنظیمات ، Deployment را انتخاب کنید.
- در قسمت Environment name، نام محیط خود را وارد کنید. می توانید نام محیط را هر چه دوست دارید بگذارید. در این مثال، صحنه سازی است.
- روی ذخیره کلیک کنید.
هنگامی که یک App Hosting برای Backend شما راه اندازی می شود (چه در git push یا به صورت دستی از طریق کنسول)، App Hosting برای apphosting. ENVIRONMENT_NAME .yaml
فایل apphosting. ENVIRONMENT_NAME .yaml
قبل از بازگشت به apphosting.yaml
.
مرحله 2: فایل apphosting.yaml
مخصوص محیط خود را ایجاد کنید
برای پیکربندی خاص محیط خود، یک فایل با نام apphosting. ENVIRONMENT_NAME .yaml
به منظور تعیین لغوهای خاص محیطی. این فایل همان قالب پیشفرض apphosting.yaml را دارد و باید در فهرست اصلی برنامه شما در کنار apphosting.yaml
قرار گیرد.
در زمان ساخت، App Hosting این دو فایل را با اولویت مقادیر موجود در فایل YAML مخصوص محیط نسبت به فایل پایه apphosting.yaml
ادغام می کند.
در این مثال، فایلی به نام apphosting.staging.yaml
در دایرکتوری ریشه برنامه ایجاد خواهید کرد:
runConfig:
cpu: 1
memoryMiB: 512
concurrency: 5
env:
- variable: API_URL
value: api.staging.service.com
availability:
- BUILD
- variable: DATABASE_URL
secret: secretStagingDatabaseURL
فرض کنید قبلاً یک apphosting.yaml
داشته اید که به شکل زیر است:
runConfig:
cpu: 3
memoryMiB: 1024
maxInstances: 4
minInstances: 0
concurrency: 100
env:
- variable: API_URL
value: api.service.com
availability:
- BUILD
- RUNTIME
- variable: STORAGE_BUCKET
value: mybucket.appspot.com
availability:
- RUNTIME
- variable: API_KEY
secret: secretIDforAPI
خروجی نهایی ادغام شده، که می توانید آن را در گزارش های Cloud Build خود بررسی کنید، به شکل زیر است:
runConfig:
cpu: 1
memoryMiB: 512
maxInstances: 4
minInstances: 0
concurrency: 5
env:
- variable: API_URL
value: api.staging.service.com
availability:
- BUILD
- variable: STORAGE_BUCKET
value: mybucket.appspot.com
availability:
- RUNTIME
- variable: API_KEY
secret: secretIDforAPI
- variable: DATABASE_URL
secret: secretStagingDatabaseURL
توجه داشته باشید که مقادیر خاصی runConfig
مانند CPU و همچنین متغیرهای محیطی با هم تداخل دارند، رونویسی شده است.
مرحله 3: پایگاه کد خود را مستقر کنید
هنگامی که ویرایش apphosting. ENVIRONMENT_NAME .yaml
فایل apphosting. ENVIRONMENT_NAME .yaml
، فایل خود را به GitHub فشار دهید:
$ git add apphosting.<ENVIRONMENT_NAME>.yaml
$ git commit -m "Added environment specific yaml file"
$ git push
هر Backendهایی که با این نام محیط برچسب گذاری شده اند، از مقادیر نادیده گرفتن خاصی که در فایل YAML مربوطه خود مشخص کرده اید استفاده می کنند و زمانی که مقداری پیدا نشد به apphosting.yaml
برمی گردد. برای بکاندهای بدون نام محیط مرتبط، میتوانید به استفاده از apphosting.yaml ادامه دهید.
مراحل بعدی
- عمیق تر بروید: از طریق یک کد Firebase که یک برنامه میزبانی شده را با ویژگی های Firebase Authentication و Google AI ادغام می کند قدم بزنید: Next.js | زاویه ای
- یک دامنه سفارشی را متصل کنید .
- باطن خود را پیکربندی کنید .
- نظارت بر عرضه، استفاده از سایت، و گزارشها .