İşleyiciler istekleri işler, yaşam döngüsü kanca işlevleri örnek durum değişikliklerini yönetir ve günlükler Simple Log Service ile entegre olur.
İşleyiciler
Her işlev bir işleyici gerektirir. Function Compute çalışma zamanı, istekleri işlemek için işleyicinizi yükler ve çağırır.
Yerleşik çalışma zamanları
Yerleşik çalışma zamanlarındaki işleyiciler standart bir biçimi takip eder; Object Storage Service (OSS), Simple Log Service, ApsaraMQ for RocketMQ ve EventBridge gibi tetikleyicilerden gelen olayları işler. HTTP tetikleyicileri doğrudan çağrı için bir URI uç noktası sunar.
Özel ve Özel Konteyner çalışma zamanları
Özel ve Özel Konteyner çalışma zamanı işleyicileri farklı şekilde çalışır. Web işlevleri.
İşleyiciyi yapılandırma
Function Compute konsolunda Handler parametresini ayarlayın. İşlev oluşturma.
Örnek yaşam döngüsü kanca işlevleri
Function Compute, istekleri işlemek için ihtiyaç duyulduğunda örnekler oluşturur. Boştaki örnekler dondurulur ve ardından bir zaman aşımı sonrasında yok edilir.
Yaşam döngüsü kanca işlevleri, bir örneğin durumu değiştiğinde özel mantığı çalıştırır. Tüm çalışma zamanları Initializer ve PreStop kanca işlevlerini destekler. Örnek yaşam döngülerini yapılandırma.
Initializer hook
Initializer hook, bir örnek başladıktan sonra ancak işleyiciden önce çalışır. Örnek başına yalnızca bir kez çalışır ve başarılı olması gerekir. Başarısızlık durumu çağrı türüne bağlıdır:
Eşzamanlı çağrılar -- sistem hatayı döndürür.
Eşzamansız çağrılar -- sistem, yapılandırılan yeniden deneme ilkesine göre yeniden dener.
Her çağrıda değil, yalnızca bir kez çalışması gereken maliyetli kurulumlar için Initializer hook'u kullanın:
Bağlantı havuzları oluşturma
İşlev bağımlılıklarını yükleme
Veritabanı ile ilgili kurulum görevleri
PreStop hook
PreStop hook, bir işlev örneği yok edilmeden önce çalışır. Şu gibi temizleme görevleri için kullanın:
Veritabanı bağlantılarını kapatma
Örneğin durumunu raporlama ve güncelleme
Günlük kaydı
Function Compute, işlev çağrı günlüklerini ve kod tarafından yazdırılan günlükleri Simple Log Service içinde saklar.
Hizmet düzeyindeki bir Logstore, işlev günlüklerini depolar. Günlük kaydı özelliğini yapılandırma.
İşlev oluşturma sırasında günlük kaydı etkinleştirildiğinde, konsol otomatik olarak varsayılan bir Logstore oluşturur.
Günlük kaydı deyimleri
Her dil, yerleşik bir günlük deyimi ve bir Function Compute günlük deyimi sunar. Function Compute deyimleri, daha kolay filtreleme için girişlere bir istek kimliği etiketi ekler.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Her iki deyim türü de günlükleri Logstore'a gönderir. Function Compute deyimleri her girişe bir istek kimliği ekler:
# Built-in statement: print('hello world')
message: hello world
# Function Compute statement: logger.info('hello world')
message: 2020-03-13T04:06:49.099Z f84a9f4f-2dfb-41b0-9d6c-1682a2f3a650 [INFO] hello world
Günlük yapısı
Bir işlev yürütme günlüğü; hizmet adını, işlev adını, geçerli sürümü, takma adı ve kod günlüklerini içerir:
__source__:
__tag__:__receive_time__: 1584072413
__topic__: FCLogs:myFunction
functionName: myFunction
message: 2020-03-13T04:06:49.099Z f84a9f4f-2dfb-41b0-9d6c-1682a2f3a650 [INFO] hello world
qualifier: LATEST
serviceName: myService
versionId:
Çalışma zamanı, her çağrı için başlangıç ve bitiş işaretçilerini yazdırır:
Başlangıç:
FC Invoke Start RequestId: f84a9f4f-2dfb-41b0-9d6c-1682a2f3a650Bitiş:
FC Invoke End RequestId: f84a9f4f-2dfb-41b0-9d6c-1682a2f3a650
İşletim sistemleri
Yerleşik çalışma zamanları Debian 9 LTS, Debian 10 LTS, Debian 11 LTS veya Debian 12 LTS üzerinde çalışır. Yalnızca x86_64 mimarisi desteklenir.
İşletim sistemini katmanlar veya ortam değişkenleri aracılığıyla özelleştirin. Örneğin, Function Compute varsayılan olarak UTC kullanır. TZ değerini Asia/Shanghai olarak ayarlayarak UTC+8 elde edin. Katmanları yapılandırma ve Ortam değişkenlerini yapılandırma.