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
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 warmupTrigger ayarlanmalıdır. |
direction | Gerekli - olarak in ayarlanmalı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ırwarmup
(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).
function.json işlev türü olarak warmupTrigger
ayarlanmalıdır.