متغیرهای محیطی
متغیرهای محیطی (بیلد و اجرا)
تعریف امن کلیدهای API و پیکربندیها، با تفکیک زمان بیلد و اجرا.
متغیرهای محیطی محل نگهداری تنظیماتی مانند DATABASE_URL، SECRET_KEY، API_TOKEN، NODE_ENV و نسخه زبان هستند و رمزگذاریشده ذخیره میشوند.
هر متغیر میتواند «زمان بیلد» یا «زمان اجرا» باشد. متغیرهای زمان بیلد در ایمیج پخته میشوند (تغییرشان نیاز به بیلد دوباره دارد)؛ متغیرهای زمان اجرا فقط هنگام اجرای کانتینر تزریق میشوند و رازهای بیلد در ایمیج باقی نمیمانند.
مقادیر حساس را داخل مخزن Commit نکنید. بعد از تغییر رمز یا توکن، سرویس بهصورت خودکار بازسازی میشود تا پردازشهای جدید با مقدار تازه اجرا شوند.
متغیرهای مرجع و اشتراکی
اتصال سرویسها به هم بدون تکرار مقدار، با الگوی ${{ … }}.
متغیرهای مرجع به شما اجازه میدهند مقدار را از جای دیگری بخوانید: ${{ shared.KEY }} از متغیرهای اشتراکی پروژه، ${{ ServiceName.KEY }} از یک سرویس دیگر در همان پروژه، و ${{ KEY }} از خود سرویس. این مقادیر در زمان استقرار محاسبه میشوند.
این الگو برای اتصال سرویسها مفید است؛ مثلاً خواندن آدرس دیتابیس از یک افزونه یا دامنه عمومی یک سرویس دیگر. متغیرهای محاسبهشدهای مانند GERDOO_PUBLIC_DOMAIN و GERDOO_PRIVATE_HOST هم در دسترساند.
ترتیب اولویت متغیرها از پایین به بالا: متغیرهای اشتراکی پروژه، سپس متغیرهای محیط، سپس متغیرهای اتصال افزونه و در بالاترین اولویت متغیرهای خود سرویس. در تعارض کلید، مقدار خود سرویس برنده است.
اتصال سرویسها با متغیرهای مرجع
بهجای کپی دستی مقادیر، با ${{ … }} از افزونهها، سرویسهای دیگر و متغیرهای اشتراکی پروژه ارجاع بگیرید؛ مقدار در زمان استقرار محاسبه میشود.
DATABASE_URL=${{ Postgres.DATABASE_URL }}
PUBLIC_URL=https://${{ GERDOO_PUBLIC_DOMAIN }}
APP_KEY=${{ shared.APP_KEY }}