متغیرها و Secretها
کدام سطح را انتخاب کنیم؟
- Project secret: مقداری مشترک برای چند محیط یا سرویس.
- Environment variable: مقدار مخصوص production، staging یا preview.
- Add-on binding: connection value تولیدشده توسط دیتابیس یا cache.
- Service variable: مقدار مختص همان سرویس و دارای بالاترین اولویت.
در تعارض، ترتیب بالا از کماولویت به پراولویت است. نام کلیدها نمایش داده میشود اما مقدار Secret پس از ذخیره ماسک میشود.
Build-time در برابر Runtime
Build-time هنگام ساخت artifact در دسترس builder است؛ برای نمونه متغیری که bundler فرانتاند مصرف میکند. Runtime فقط هنگام اجرای process تزریق میشود و انتخاب مناسبتری برای credential است. متغیری که برنامه در startup میخواند پس از تغییر به deploy یا restart نیاز دارد.
Reference variables
reference از کپیشدن مقدار و drift جلوگیری میکند و هنگام deploy resolve میشود:
DATABASE_URL=${{ Postgres.DATABASE_URL }}
APP_KEY=${{ shared.APP_KEY }}
PUBLIC_URL=https://${{ GERDOO_PUBLIC_DOMAIN }}${{ shared.KEY }} از project secret، ${{ ServiceName.KEY }} از سرویس دیگر و ${{ KEY }} از context خود سرویس خوانده میشود. اگر reference حل نشد، نام سرویس، محیط، spelling کلید و وجود binding را بررسی کنید.
دو store در CLI
gerdoo service env نقشه ساده env را مدیریت میکند. gerdoo service vars انبار تایپدار با گزینههای --build-time و --secret است. برای تنظیمات جدید، store تایپدار انتخاب روشنتری است.