Tüm Ürünler
Search
Belge Merkezi

Function Compute:Örnek yaşam döngülerini yapılandırın

Son Güncelleme:Oct 08, 2026

Kullanıcı isteklerini işlerken Function Compute otomatik olarak bir veya daha fazla örnek tahsis eder. Her örnek güvenli ve yalıtılmış bir çalışma zamanı ortamı sağlar. Geleneksel uygulamaları sunucusuz mimariye geçirirken örnek oluşturma ve yok etme işlemlerinin geçici doğası; izleme verilerinin gecikmeli güncellenmesi, ölçüm gecikmeleri veya veri kaybı gibi sorunlara neden olabilir. Bu sorunları gidermek için Function Compute izleme verilerinizin zamanında ve eksiksiz olmasını sağlayan örnek yaşam döngüsü kancaları sunar.

İşlev örneği yaşam döngüsü

İşlev örnekleri, işlevinizin mevcut çağrı hacmine göre talep üzerine oluşturulur ve yok edilir. Her işlev örneğinin yaşam döngüsü aşağıdaki şekilde gösterildiği gibi örnek oluşturma, çağrı ve örnek yok etme olmak üzere üç aşamadan oluşur.

image

Oluşturma

Oluşturma aşamasında Function Compute işlevinizin yapılandırmasına dayalı olarak bir işlev örneği oluşturur. Bu aşamada Function Compute aşağıdaki görevleri sırasıyla yürütür:

  1. Örnek Oluşturma: Bu işlem kodun yüklenmesini, katmanların yüklenmesini veya görüntünün çekilmesini ve örneğin başlatılmasını içerir.

  2. Çalışma Zamanı Başlatma (Runtime Init).

  3. Yapılandırılan Başlatıcı (Initializer) kancasını yürütür. Daha fazla bilgi için bkz. Başlatıcı kancası.

image

Örnek oluşturma genellikle aşağıdaki iki senaryoda gerçekleşir.

  • Esnek yatay ölçeklendirme

    Bir çağrı isteği alındığında ve mevcut tüm işlev örnekleri meşgul olduğunda isteği karşılamak için yeni bir örnek oluşturulur. Örnek hemen oluşturulur ve ardından çağrı işlemi başlar. Bu esnek yatay ölçeklendirme soğuk başlatmaya neden olabilir. Bu sorunu nasıl azaltacağınız hakkında bilgi için bkz. Function Compute'da soğuk başlatmaları optimize etmeye yönelik en iyi uygulamalar.

  • Minimum örnek sayısı ayarı

    Yapılandırılan minimum örnek sayısını 0'dan 1 veya daha fazlasına değiştirirseniz Function Compute örnek oluşturma sürecini hemen başlatır. O sırada herhangi bir çağrı isteği alınmazsa örnek oluşturma ile ilk çağrı arasında bir gecikme olabilir. Daha fazla bilgi için bkz. Minimum örnek sayısı için esnek ilke yapılandırma.

Çağırma

Bir örnek çalışırken Function Compute çağrı isteklerini işlemek için işlev işleyicinizi çağırır. Çağrı aşamasında yerleşik bir çalışma zamanı için bir örnek aynı anda yalnızca bir isteği işler. Özel bir çalışma zamanı veya özel konteyner çalışma zamanı için bir örnek birden çok isteği eşzamanlı olarak işleyebilir. Bunu örnek eşzamanlılığını yapılandırarak elde edebilirsiniz. Daha fazla bilgi için bkz. Örnek eşzamanlılığını yapılandırma.

Function Compute yalnızca kodunuzun çalıştığı süre için ücretlendirilir; bu süreye istekler ve kanca işleyicileri dahildir. İstekler arasındaki boşta kalma dönemlerinde örnek dondurulur ve ücret yansıtılmaz. Daha fazla bilgi için bkz. Faturalama.

Yok Etme

Bu aşama bir işlev örneği belirli bir süre boyunca herhangi bir çağrı almazsa tetiklenir. Yok etme aşamasında Function Compute önce PreStop kancasını çalıştırır. Temizleme görevlerini bu kancada gerçekleştirebilirsiniz.

Örnek yok etme genellikle aşağıdaki üç senaryoda gerçekleşir.

  • Boşta kalan örnek: Bir örnek belirtilen süre boyunca boşta kalırsa Function Compute bunu otomatik olarak geri alır.

  • Minimum örnek sayısı ayarı: Minimum örnek sayısını düşürdüğünüzde Function Compute fazla örnekleri hemen yok eder.

  • Örnek hatası: Örnek oluşturma veya çağrı aşamasında bir hata oluşursa Function Compute örneği yok eder.

Örnek dondurma mekanizması

Herhangi bir çağrı isteği olmadığında Function Compute örneği dondurur. Yeni bir istek geldiğinde Function Compute örneği çözer. Bu süreç aşağıdaki şekilde gösterilmiştir.

image

Örnek dondurma çoğunlukla aşağıdaki iki durumda gerçekleşir:

  • Örnek başlatma aşaması tamamlandıktan sonra ancak ilk çağrıdan önce.

  • Bir çağrı tamamlandıktan sonra ancak sonraki çağrı başlamadan önce.

Bir çağrı tamamlandıktan sonra Function Compute işlev örneğini dondurur. Kodunuzdaki arka plan işlemleri, iş parçacıkları veya coroutine'ler duraklatılır ve devam edemez. Bu durum asenkron günlüklerin başarılı bir şekilde yazılmasını engelleyebilir.

Sınırlamalar

  • GPU hızlandırmalı işlevler için Başlatıcı (Initializer) kancası Kod Çağrısı ve Komut Yürütme olmak üzere iki türü destekler. Bu türlerden yalnızca birini aynı anda etkinleştirebilirsiniz.

  • Olay tetiklemeli, web ve görev işlevleri için Başlatıcı kancası yalnızca Kod Çağrısı türünü destekler.

  • PreStop kancası yalnızca Kod Çağrısı türünü destekler ve tüm çalışma zamanları PreStop kancasını destekler.

  • PreStop kancası yöntemi için giriş parametreleri olay parametresi içermez.

  • PreStop kancası bir değer döndürmez ve işlevinizdeki tüm dönüş mantığı yoksayılır.

  • Java çalışma zamanını kullanıyorsanız fc-java-core sürümünü 1.4.0 veya üzeri bir sürüme güncellemeniz gerekir. Aksi takdirde PreStop kancasını kullanamazsınız.

  • Arka plan iş parçacıkları veya günlük temizleme gibi asenkron işlemlerin örnek donmadan önce tamamlanacağını varsaymayın.

  • Kod Çağrısı kancalarının yapılandırma yöntemi çalışma zamanına göre değişir. Yerleşik bir çalışma zamanı için yaşam döngüsü kancası yapılandırırken özel bir giriş noktası tanımlamanız gerekir. Örneğin Başlatıcı kanca işleyicisini index.initialize olarak ayarlarsanız kodunuza bir initialize kanca işlevi eklemeniz gerekir. Buna karşılık özel ve özel konteyner çalışma zamanlarında Başlatıcı ve PreStop kancalarını yapılandırdıktan sonra sistem örnek başladığında veya durduğunda işlevinize bir HTTP isteği (POST /initialize veya GET /pre-stop) gönderir. Uygulama kodunuz bu istekleri işlemelidir.

Faturalama

Örnek yaşam döngüsü kancalarının çağrıları istek ücretine tabi değildir. Diğer ücretler örnek çağrı aşamasındakiyle aynı mantık kullanılarak hesaplanır. Faturalandırılan süre aşağıdaki şekilde gösterilmiştir. Faturalama hakkında daha fazla bilgi için bkz. Faturalamaya genel bakış.

image

Önkoşullar

Bir işlev oluşturulmuştur. Daha fazla bilgi için bkz. İşlev oluşturma.

Örnek yaşam döngüsü kancalarını yapılandırma

Konsol

  1. Function Compute konsolu oturum açın. Sol gezinme bölmesinde Function Management > Functions seçeneğini belirleyin.

  2. Üst gezinme çubuğunda bir bölge seçin. Functions sayfasında hedef işleve tıklayın.

  3. İşlev ayrıntıları sayfasında Configuration sekmesine tıklayın ve ardından Modify bölümündeki Instance Configuration seçeneğine tıklayın.

  4. Instance Configuration panelinde Başlatıcı kancasını ve zaman aşımı süresini yapılandırın.

    Bu konuda Başlatıcı kancasının nasıl yapılandırılacağı GPU hızlandırmalı bir işlev örneği kullanılarak açıklanmaktadır. Olay tetiklemeli, web ve görev işlevleri için Başlatıcı kancası yalnızca Code Invocation türünü destekler. Bu konudaki Code Invocation türüne ilişkin adımları izleyebilirsiniz.

    • Code Invocation türünü seçin

      Initializer hook anahtarını açın ve Initializer hook timeout değerini 300 saniye olarak ayarlayın. Bu özelliği etkinleştirdiğinizde Function Compute bir örnek başladığında işleve bir HTTP POST /initialize isteği gönderir. 200 yanıtı başarıyı gösterirken 4xx veya 5xx yanıtı hataya veya örneğin yeniden başlatılmasına neden olur.

    • Command Execution türünü seçin

      Initializer hook anahtarını açın, Initializer hook timeout değerini 300 saniye olarak ayarlayın ve Command değerini >/bin/sh olarak belirtin. Kod düzenleyicide yerel Stable Diffusion API'ye bir sağlık kontrolü POST isteği gönderen bir kabuk betiği yazın. URL'yi http://localhost:7860 ve REQUEST_PATH değerini sdapi/v1/txt2img olarak ayarlayın. prompt, steps, height ve width alanlarını içeren bir JSON yükü oluşturun ve ardından curl kullanarak isteği gönderin.

  5. Instance Configuration panelinde PreStop kancasını ve zaman aşımı süresini yapılandırın ve ardından Deploy seçeneğine tıklayın.

  6. Code Invocation türünde bir kanca yapılandırdıysanız ilgili işlevi kodunuzda uygulamanız gerekir.

    1. Code sekmesine tıklayın. Kod düzenleyicide kanca işlevi için mantığı ekleyin.

      Örneğin PreStop kanca işleyicisini index.preStop olarak yapılandırdıysanız kodunuzda preStop işlevini uygulamanız gerekir. Farklı çalışma zamanları için örnek yaşam döngüsü kancalarının nasıl uygulanacağı hakkında bilgi için bkz. İşlev örnekleri için yaşam döngüsü kancaları.

      Not

      Çevrimiçi IDE PHP, Python, Node.js ve özel çalışma zamanlarını destekler ancak Java, Go ve .NET gibi derlenen dilleri veya özel konteyner çalışma zamanlarını desteklemez.

    2. Kod düzenleyicinin üst kısmında Deploy seçeneğine ve ardından Test Function seçeneğine tıklayın.

Serverless Devs

Bir Başlatıcı kancasını yapılandırmak için Serverless Devs kullanırken s.yaml dosyanızdaki kod parçacığı aşağıdaki örneğe benzer:

  codeUri: './code.zip'
  ......
  instanceLifecycleConfig:
    initializer:
      timeout: 60
      command:
        - /bin/sh
        - -c
        - echo "hello"

Bir kancayı devre dışı bırakmanız gerekiyorsa işleyici ve komut parametrelerini açıkça boş dizelere ayarlamanız gerekir. Arka uç aksi takdirde güncellemeyi uygulamaz. Örneğin Başlatıcı kancasını devre dışı bırakmak için aşağıdaki yapılandırmayı dağıtın. Başlatıcı kancası için zaman aşımı ve komut parametreleri daha sonra yoksayılır.

  codeUri: './code.zip'
  ......
  instanceLifecycleConfig:
    initializer:
      handler: ""
      timeout: 60
      command: ""

Farklı çalışma zamanları için örnek yaşam döngüsü kancalarının nasıl uygulanacağı hakkında bilgi için bkz. İşlev örnekleri için yaşam döngüsü kancaları.

SDK

Kancaları dağıtmak ve güncellemek için bir SDK kullanabilirsiniz. Bu bölümde bir işlev oluştururken kancaları yapılandırmaya yönelik örnek SDK kodunun nasıl alınacağı açıklanmaktadır.

  1. CreateFunction API referans konusuna gidin ve OpenAPI Portal'ını açmak için Debug seçeneğine tıklayın.

  2. Parameters sekmesinde oluşturmak istediğiniz işleve göre input parameters belirtin.

    Not

    PreStop kancaları için komut parametresi desteklenmez.

    instanceLifecycleConfig öğesini genişletin. initializer bölümünde timeout değerini 300 olarak ayarlayın. command listesinde değeri curl -X POST 'http://localhost:9000/preWarm' olan 0 indeksli bir öğe ekleyin. preStop bölümünde handler değerini index.preStop ve timeout değerini 3 olarak ayarlayın.

  3. Parametreleri yapılandırdıktan sonra tercih ettiğiniz dil için örnek kodu almak üzere SDK Example sekmesine tıklayın.

Farklı çalışma zamanları için örnek yaşam döngüsü kancalarının nasıl uygulanacağı hakkında bilgi için bkz. İşlev örnekleri için yaşam döngüsü kancaları.

İşlev örnekleri için yaşam döngüsü kancaları

Function Compute içindeki tüm çalışma zamanları hem Başlatıcı hem de PreStop kancalarını destekler. Farklı çalışma zamanlarında örnek yaşam döngüsü kancalarının nasıl uygulanacağını öğrenmek için aşağıdaki belgelere bakın.


Çalışma Zamanı


Açıklama


Referanslar


Node.js


Node.js'de işlev örnekleri için yaşam döngüsü kancalarını uygulayın.


İşlev örnekleri için yaşam döngüsü kancaları


Python


Python'da işlev örnekleri için yaşam döngüsü kancalarını uygulayın.


İşlev örnekleri için yaşam döngüsü kancaları


PHP


PHP'de işlev örnekleri için yaşam döngüsü kancalarını uygulayın.


İşlev örnekleri için yaşam döngüsü kancaları


Java


Java'da işlev örnekleri için yaşam döngüsü kancalarını uygulayın.


İşlev örnekleri için yaşam döngüsü kancaları


C#


C#'ta işlev örnekleri için yaşam döngüsü kancalarını uygulayın.


İşlev örnekleri için yaşam döngüsü kancaları


Go


Go'da işlev örnekleri için yaşam döngüsü kancalarını uygulayın.


İşlev örnekleri için yaşam döngüsü kancaları


özel çalışma zamanı


Özel bir çalışma zamanında işlev örnekleri için yaşam döngüsü kancalarını uygulayın.


İşlev örnekleri için yaşam döngüsü kancaları


özel konteyner çalışma zamanı


Özel bir konteyner çalışma zamanında işlev örnekleri için yaşam döngüsü kancalarını uygulayın.


İşlev örnekleri için yaşam döngüsü kancaları

Kancalarla ilgili günlükleri sorgulama

Örnek yaşam döngüsü kancalarını yapılandırdıktan ve ilgili işlevleri uyguladıktan sonra ilgili günlükleri sorgulayabilirsiniz.

Not

Komut Yürütme türündeki kancalar tarafından oluşturulan günlükler şu anda işlev günlüklerine yazılamaz.

  1. Function Compute konsolu oturum açın. Sol gezinme bölmesinde Function Management > Functions seçeneğini belirleyin.

  2. Üst gezinme çubuğunda bir bölge seçin. Functions sayfasında hedef işleve tıklayın.

  3. İşlev ayrıntıları sayfasında Logs sekmesine tıklayın. Invocation Requests sekmesinde hedef isteği bulun ve Actions sütunundaki Advanced Logs seçeneğine tıklayın.

    Tüm yaşam döngüsü kancaları için başlangıç ve bitiş günlüklerini sorgulamak amacıyla örnek kimliğini kullanabilirsiniz. Belirli bir kanca için günlükleri bulmak amacıyla örnek kimliği AND "kanca anahtar kelimesi" gibi bir sorgu da kullanabilirsiniz; örneğin c-62833f38-20f1629801fa4bd***** and PreStop.

    Başlangıç ve bitiş günlüklerindeki RequestId'yi kullanarak belirli bir istekle ilgili günlükleri de sorgulayabilirsiniz. Bir günlük RequestId içermiyorsa bağlam günlüklerini görüntülemek için o günlük girdisindeki db_lifecycle_log_context simgesine tıklayın.