Function Compute içinde bir işlevi güncellediğinizde yeni kod ve yapılandırmalar LATEST sürümünü anında üzerine yazar; sonraki tüm çağrılar bu güncel sürüm üzerinden çalışır. Değişiklikleri üretim ortamlarında doğrudan tüm trafiğe yaymak risk taşır.
Topluluk tarafından sağlanan @serverless-cd/fc-canary eklentisi, yeni sürümü tam olarak devreye almadan önce trafiğin yalnızca belirli bir yüzdesini yeni sürüme yönlendirerek kademeli sürüm dağıtımı yapmanıza olanak tanır.
Nasıl çalışır?
Function Compute, dağıtımları sürümlendirmeden ayırmak için takma adları (alias) kullanır. Üretim ortamında bir takma adı belirli bir yayımlanmış sürüme işaretlersiniz. Yeni kodu dağıttığınızda LATEST sürümü güncellenir ancak takma ad hâlâ önceki kararlı sürümü gösterir. Takma adı açıkça güncelleyene kadar trafik eski sürüme akmaya devam eder.
fc-canary eklentisi bu süreci otomatikleştirir:
Mevcut
LATESTkod ve yapılandırmalarına dayalı olarak yeni bir sürüm yayımlar.Trafiği önceki kararlı sürüm ile yeni yayımlanan sürüm arasında paylaştıracak şekilde takma adı günceller. Takma ad henüz mevcut değilse eklenti onu otomatik olarak oluşturur.
Çağrıların yalnızca belirli bir yüzdesini yeni sürüme yönlendirerek dağıtımı tamamlamadan önce hataları veya performans gerilemelerini izleyebilirsiniz.
Ön koşullar
Serverless Devs aracını yüklediniz ve Alibaba Cloud kimlik bilgilerinizi yapılandırdınız.
Function Compute içinde bir işlev dağıttınız.
İşlem hattı yapılandırmanıza
@serverless-cd/fc-canaryeklentisini yüklediniz.
Parametreler
Aşağıdaki tabloda fc-canary eklentisinin desteklediği parametreler açıklanmıştır.
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
serviceName |
String | Evet (FC 2.0) | Hedef işlevi içeren Function Compute 2.0 hizmetinin adı. |
functionName |
String | Evet (FC 3.0) | İşlevin adı. Hizmet düzeyindeki gruplamayı kaldıran Function Compute 3.0'da kullanılır. |
aliasName |
String | Evet | Oluşturulacak veya güncellenecek takma adın adı. Örneğin, prod. |
regionId |
String | Evet | İşlevin dağıtıldığı bölgenin ID'si. Örneğin, cn-hangzhou. |
canaryPercent |
Number | Evet | Yeni sürüme yönlendirilecek trafik yüzdesi. Geçerli değerler: 0 ile 100. |
Kullanım
Function Compute 2.0
Function Compute 2.0'da takma adlar hizmet düzeyinde yapılandırılır. Aşağıdaki örnek, bir hizmet için takma adı günceller ve trafiğin %50'sini yeni sürüme yönlendirir:
- plugin: @serverless-cd/fc-canary
inputs:
serviceName: web-framework-kzbp
aliasName: prod
regionId: cn-hangzhou
canaryPercent: 50
Function Compute 3.0
Function Compute 3.0'da hizmet düzeyindeki gruplama kaldırılmıştır. serviceName yerine functionName parametresini kullanın:
- plugin: @serverless-cd/fc-canary
inputs:
functionName: my-function
aliasName: prod
regionId: cn-hangzhou
canaryPercent: 10
Dağıtımı tamamlayın
Yeni sürümün beklendiği gibi çalıştığını doğruladıktan sonra dağıtımı tamamlamak için canaryPercent değerini 100 olarak güncelleyin veya takma adı tamamen yeni sürüme işaret edecek şekilde ayarlayın.