CI'dan test edin ve dağıtın
Yerel öykünmenin sınırlarının önceden belirtildiği, ilk düzenlemeden otomatik dağıtıma kadar uygulanabilir bir döngü.
1. Yerel olarak çalıştırın
aura functions serve dosyanızı Deno ile çalıştırır ve kaydettiğinizde yeniden başlatır.
Sade bir Deno sunucusudur. Platformla karşılaştırıldığında aşağıdaki özelliklere sahiptir:
- Platform başlığı yok.
x-aura-rolevex-aura-user-idyok: yetkilendirme dallarını test etmek için bunları kendinizcurl -Hile gönderin. - Sır yok. Bunları kabuğunuza aktarın:
STRIPE_SECRET_KEY=sk_test_… aura functions serve checkout. - Sınır yok. Bellek, zaman aşımı, gövde boyutu ve hız sınırları uygulanmaz.
- Düz istekler. İşlevi doğrudan çağırırsınız, dolayısıyla
pathvemethodSDK'nıninvokeseçenekleri değil,curlsizinkilerdir.
invoke platform yolunu çağırdığından SDK bu sunucuyu hedefleyemez. Aşağıdaki gibi SDK yolunu gerçek bir projeye karşı test edin.
2. Gerçek anlamda test edin
Geliştirme için bir proje oluşturun (bkz. ilk işleviniz), işlevi orada dağıtın ve SDK aracılığıyla test edin. Bu, platformun kimlik başlıklarını, limitlerini ve hata sınıflarını kapsar.
İpuçları:
- Özel bir proje kullanın, asla üretim yapmayın ve anahtarlarını CI sırlarınızda saklayın.
- Çağırma hızı sınırı 15 çağrı, ardından IP başına saniyede 1 çağrıdır. Testlerinizi aralıklandırın veya seri olarak çalıştırın.
3. CI'dan dağıtma
aura CLI, macOS Apple Silicon'daki npm'den ve başka bir yerdeki kaynaktan yüklenir; dolayısıyla Linux CI işi HTTP API ile daha basittir. Dağıtım, işlev başına bir POST işlemidir ve kimliği bir service_role anahtarıyla doğrulanır. Bu döngü gerçek bir projeye karşı çalıştırıldı ve işlev daha sonra yanıt verdi.
Bunu her basışta çalıştırmayı güvenli kılan gerçekler:
POSTmevcut bir işlevin kodunu değiştirir ve , gövdedeenv_varsbulunmadığından sırlarını tutar.- Bir işlev tek dosyalıdır: göreceli içe aktarmalar gönderilmez. Yerel modüller kullanıyorsanız önce paketleyin.
- Sunucuda sürüm geçmişi yok. Git geçmişiniz geri alma işlemidir: geri dönmek için taahhüdü geri alın ve CI'nın yeniden dağıtılmasına izin verin.
Ardından, aşağıdaki bir işte yeni dağıttığınız projeye karşı entegrasyon testlerinizi çalıştırın.
4. Geliştirme, aşamalandırma ve üretim
Bir proje, bir ortamdır. Ortam başına, her biri kendi URL'sine ve anahtarlarına sahip bir proje oluşturun ve hedefi CI'nın seçmesine izin verin:
| Çevre | Proje | Ne zaman dağıtıldı |
|---|---|---|
| Geliştirme | geliştirici başına bir tane veya paylaşılan | talep üzerine şubeden |
| Evreleme | my-app-staging | main öğesine her basıldığında |
| Üretim | my-app | Aşama testleri geçtikten sonra bir yayın etiketi |
AURA_PROJECT_URL ve AURA_SERVICE_ROLE_KEY öğelerini GitHub ortamına göre depolayın ve her işlevin gizli dizilerini her projede ayrı ayrı ayarlayın. Projeler arasında hiçbir şey paylaşılmaz.