Aracılığıyla paylaş


Azure İşlevleri ısınma tetikleyicisi

Bu makalede, Azure İşlevleri'da ısınma tetikleyicisi ile nasıl çalışabilirsiniz açıklanmaktadır. Çalışan işlev uygulamasını ölçeklendirmek için bir örnek eklendiğinde bir ısınma tetikleyicisi çağrılır. Isınma tetikleyicisi, işlev uygulamanızın yeni bir örneği başlatıldığında çalışan bir işlev tanımlamanıza olanak tanır. İşlevlerinizin istekleri hemen işlemeye hazır olması için özel bağımlılıkları önceden yüklemek için bir ısınma tetikleyicisi kullanabilirsiniz. Bir ısınma tetikleyicisi için bazı eylemler arasında bağlantıları açma, bağımlılıkları yükleme veya uygulamanız trafik almaya başlamadan önce başka bir özel mantık çalıştırma sayılabilir.

Isınma tetikleyicisi kullanılırken aşağıdaki noktalar geçerlidir:

  • Isınma tetikleyicisi Tüketim planında çalışan uygulamalar tarafından kullanılamaz.
  • Isınma tetikleyicisi İşlevler çalışma zamanının 1.x sürümünde desteklenmez.
  • Isınma tetikleyicisi desteği tüm geliştirme ortamlarında varsayılan olarak sağlanır. Paketi el ile yüklemeniz veya uzantıyı kaydetmeniz gerekmez.
  • İşlev uygulaması başına yalnızca bir ısınma tetikleyicisi işlevi olabilir ve örnek zaten çalıştırıldıktan sonra çağrılamıyor.
  • Isınma tetikleyicisi yalnızca ölçeği genişletme işlemleri sırasında çağrılır, yeniden başlatmalar veya diğer ölçeklendirilmeyen başlatmalar sırasında çağrılmaz. Mantığınızın, ısınma tetikleyicisine bağlı kalmadan tüm gerekli bağımlılıkları yükleyeediğinden emin olun. Yavaş yükleme, bu hedefe ulaşmak için iyi bir desendir.
  • Isınma tetikleyicisi tarafından oluşturulan bağımlılıklar uygulamanızdaki diğer işlevlerle paylaşılmalıdır. Daha fazla bilgi edinmek için bkz . Statik istemciler.
  • Yerleşik kimlik doğrulaması (Kolay Kimlik Doğrulaması olarak da bilinir) kullanılıyorsa, ısınma tetikleyicisinin çağrılabilmesi için Yalnızca HTTPS etkinleştirilmelidir.

Örnek

C# işlevi aşağıdaki C# modlarından biri kullanılarak oluşturulabilir:

  • Yalıtılmış çalışan modeli: Çalışma zamanından yalıtılmış bir çalışan işleminde çalışan derlenmiş C# işlevi. LTS ve .NET ve .NET Framework dışındaki sürümlerde çalışan C# işlevlerini desteklemek için yalıtılmış çalışan işlemi gereklidir.
  • İşlem içi model: İşlevler çalışma zamanıyla aynı işlemde çalışan derlenmiş C# işlevi.
  • C# betiği: Öncelikle Azure portalında C# işlevleri oluşturduğunuzda kullanılır.

Önemli

İşlem içi model desteği 10 Kasım 2026'da sona erecektir. Tam destek için uygulamalarınızı yalıtılmış çalışan modeline geçirmenizi kesinlikle öneririz.

Aşağıdaki örnekte, uygulamanıza eklendiğinde her yeni örnekte çalışan bir C# işlevi gösterilmektedir.

using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.Logging;

namespace SampleApp
{
    public static class Warmup
    {
        [Function(nameof(Warmup))]
        public static void Run([WarmupTrigger] object warmupContext, FunctionContext context)
        {
            var logger = context.GetLogger(nameof(Warmup));
            logger.LogInformation("Function App instance is now warm!");
        }
    }
}

Aşağıdaki örnekte, uygulamanıza her yeni örnek eklendiğinde çalışan bir ısınma tetikleyicisi gösterilmektedir.

@FunctionName("Warmup")
public void warmup( @WarmupTrigger Object warmupContext, ExecutionContext context) {
    context.getLogger().info("Function App instance is warm.");
}

Aşağıdaki örnekte, uygulamanıza eklendiğinde her yeni örnekte çalışan bir ısınma tetikleyicisine sahip bir JavaScript işlevi gösterilmektedir:

const { app } = require('@azure/functions');

app.warmup('warmupTrigger1', {
    handler: (warmupContext, context) => {
        context.log('Function App instance is warm.');
    },
});

Aşağıdaki örnekte, uygulamanıza eklendiğinde her yeni örnekte çalışan bir ısınma tetikleyicisine sahip bir TypeScript işlevi gösterilmektedir:

import { app, InvocationContext, WarmupContext } from '@azure/functions';

export async function warmupFunction(warmupContext: WarmupContext, context: InvocationContext): Promise<void> {
    context.log('Function App instance is warm.');
}

app.warmup('warmup', {
    handler: warmupFunction,
});

İşte function.json dosyası:

{
    "bindings": [
        {
            "type": "warmupTrigger",
            "direction": "in",
            "name": "warmupContext"
        }
    ]
}

PowerShell örnek kodu beklemede.

Aşağıdaki örnekte, function.json dosyasındaki bir ısınma tetikleyicisi ve uygulamanıza eklendiğinde her yeni örnekte çalışan bir Python işlevi gösterilmektedir.

İşlevinizin adı warmup (büyük/küçük harfe duyarsız) olmalıdır ve uygulama başına yalnızca bir ısınma işlevi olabilir.

İşte function.json dosyası:

{
    "bindings": [
        {
            "type": "warmupTrigger",
            "direction": "in",
            "name": "warmupContext"
        }
    ]
}

Daha fazla bilgi için bkz. Yapılandırma.

Python kodu şu şekildedir:

import logging
import azure.functions as func


def main(warmupContext: func.Context) -> None:
    logging.info('Function App instance is warm.')

Özellikler

hem işlem içi hem de yalıtılmış çalışan işlemi C# kitaplıkları işlevi tanımlamak için özniteliğini kullanırWarmupTrigger. C# betiği bunun yerine bir function.json yapılandırma dosyası kullanır.

WarmupTrigger işlevini tanımlamak için özniteliğini kullanın. Bu özniteliğin parametresi yok.

Ek Açıklamalar

Isınma tetikleyicileri ek açıklama gerektirmez. Ek açıklama için FunctionName bir ad warmup (büyük/küçük harfe duyarsız) kullanmanız yeter.

Yapılandırma

yöntemine geçirilen app.warmup() nesnede options ayarlanması gereken özellik yok.

Yapılandırma

Aşağıdaki tabloda, function.json dosyasında ayarladığınız bağlama yapılandırma özellikleri açıklanmaktadır.

function.json özelliği Açıklama
type Gerekli - olarak warmupTriggerayarlanmalıdır.
direction Gerekli - olarak inayarlanmalıdır.
ad Gerekli - işlev kodunda kullanılan değişken adı. name warmupContext bağlama parametresi için bir önerilir.

Tam örnekler için Örnek bölümüne bakın.

Kullanım

C# dilinde bir ısınma işlevi kullanmak için aşağıdaki önemli noktalar geçerlidir:

  • İşleviniz özniteliği kullanılarak Function adlandırılmalıdır warmup (büyük/küçük harfe duyarsız).
  • Dönüş değeri özniteliği gerekli değildir.
  • Microsoft.Azure.Functions.Worker.Extensions.Warmup Paketi kullanma
  • bir nesne örneğini işleve geçirebilirsiniz.

İşleviniz ek açıklama kullanılarak FunctionName adlandırılmalıdır warmup (büyük/küçük harfe duyarsız).

Genel kullanım önerileri için sayfanın üst kısmındaki dikkat edilmesi gerekenler listesine bakın.

function.json işlev türü olarak warmupTriggerayarlanmalıdır.

Sonraki adımlar