Pemicu pemanasan Azure Functions

Artikel ini menjelaskan cara bekerja dengan pemicu pemanasan di Azure Functions. Pemicu pemanasan dipanggil saat instans ditambahkan untuk menskalakan aplikasi fungsi yang sedang berjalan. Pemicu pemanasan memungkinkan Anda menentukan fungsi yang berjalan saat instans baru aplikasi fungsi Anda dimulai. Anda dapat menggunakan pemicu pemanasan untuk memuat dependensi kustom terlebih dahulu sehingga fungsi Anda siap untuk segera mulai memproses permintaan. Beberapa tindakan untuk pemicu pemanasan termasuk membuka koneksi, memuat dependensi, atau menjalankan logika kustom lainnya sebelum aplikasi Anda mulai menerima lalu lintas.

Pertimbangan berikut berlaku saat menggunakan pemicu pemanasan:

  • Pemicu pemanasan tidak tersedia untuk aplikasi yang berjalan pada Paket Pemakaian.
  • Pemicu pemanasan tidak didukung pada runtime Functions versi 1.x.
  • Dukungan untuk pemicu pemanasan disediakan secara default di semua lingkungan pengembangan. Anda tidak perlu memasang paket secara manual atau mendaftarkan ekstensi.
  • Hanya ada satu fungsi pemicu pemanasan per aplikasi fungsi, dan tidak dapat dipanggil setelah instans sudah berjalan.
  • Pemicu pemanasan hanya dipanggil selama operasi peluasan skala, bukan selama mulai ulang atau startup nonscaling lainnya. Pastikan logika Anda dapat memuat semua dependensi yang diperlukan tanpa mengandalkan pemicu pemanasan. Pemuatan lambat adalah pola yang baik untuk mencapai tujuan ini.
  • Dependensi yang dibuat oleh pemicu pemanasan harus dibagikan dengan fungsi lain di aplikasi Anda. Untuk mempelajari selengkapnya, lihat Klien statik.
  • Jika autentikasi bawaan (juga dikenal sebagai Easy Auth) digunakan, HTTPS Only harus diaktifkan agar pemicu pemanasan dipanggil.

Contoh

Fungsi C# dapat dibuat dengan menggunakan salah satu mode C# berikut:

  • Model pekerja terisolasi: Fungsi C# terkompilasi yang berjalan dalam proses pekerja yang terisolasi dari runtime. Proses pekerja terisolasi diperlukan untuk mendukung fungsi C# yang berjalan pada versi LTS dan non-LTS .NET dan .NET Framework.
  • Model dalam proses: Fungsi C# yang dikompilasi yang berjalan dalam proses yang sama dengan runtime Functions.
  • Skrip C#: Digunakan terutama saat Anda membuat fungsi C# di portal Azure.

Penting

Dukungan akan berakhir untuk model dalam proses pada 10 November 2026. Kami sangat menyarankan Agar Anda memigrasikan aplikasi Anda ke model pekerja yang terisolasi untuk dukungan penuh.

Contoh berikut menunjukkan fungsi C# yang berjalan pada setiap instans baru saat ditambahkan ke aplikasi Anda.

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!");
        }
    }
}

Contoh berikut menunjukkan pemicu pemanasan yang berjalan saat setiap instans baru ditambahkan ke aplikasi Anda.

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

Contoh berikut menunjukkan fungsi JavaScript dengan pemicu pemanasan yang berjalan pada setiap instans baru saat ditambahkan ke aplikasi Anda:

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

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

Contoh berikut menunjukkan fungsi TypeScript dengan pemicu pemanasan yang berjalan pada setiap instans baru saat ditambahkan ke aplikasi Anda:

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,
});

Berikut adalah file function.json:

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

Contoh kode PowerShell tertunda.

Contoh berikut menunjukkan pemicu pemanasan dalam file function.json dan fungsi Python yang akan berjalan pada setiap instans baru saat ditambahkan ke aplikasi Anda.

Fungsi Anda harus diberi nama warmup (tidak peka huruf besar/kecil) dan hanya boleh ada satu fungsi pemanasan per aplikasi.

Berikut adalah file function.json:

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

Untuk informasi lebih lanjut, lihat Konfigurasi.

Berikut adalah kode Python:

import logging
import azure.functions as func


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

Atribut

Pustaka C# proses dalam proses dan terisolasi menggunakan WarmupTrigger atribut untuk menentukan fungsi . Sebagai gantinya, skrip C# menggunakan file konfigurasi function.json.

Gunakan atribut WarmupTrigger untuk menentukan fungsinya. Atribut ini tidak memiliki parameter.

Anotasi

Pemicu pemanasan tidak memerlukan anotasi. Cukup gunakan nama warmup (tidak peka huruf besar/kecil) untuk anotasi FunctionName.

Konfigurasi

Tidak ada properti yang perlu diatur pada objek yang options diteruskan ke app.warmup() metode .

Konfigurasi

Tabel berikut menjelaskan properti konfigurasi pengikatan yang Anda atur di file function.json.

Properti function.json Deskripsi
jenis Wajib - harus diatur ke warmupTrigger.
arah Wajib - harus diatur ke in.
nama Diperlukan - nama variabel yang digunakan dalam kode fungsi. name pada warmupContext direkomendasikan untuk parameter pengikatan.

Lihat Bagian contoh untuk contoh lengkapnya.

Penggunaan

Pertimbangan berikut berlaku untuk menggunakan fungsi pemanasan di C#:

  • Fungsi Anda harus diberi nama warmup (tidak peka huruf besar/kecil) menggunakan atribut Function.
  • Atribut nilai yang dikembalikan tidak diperlukan.
  • Gunakan paket Microsoft.Azure.Functions.Worker.Extensions.Warmup
  • Anda dapat meneruskan instans objek ke fungsi tersebut.

Fungsi Anda harus diberi nama warmup (tidak peka huruf besar/kecil) menggunakan anotasi FunctionName.

Lihat daftar pertimbangan di bagian atas halaman untuk saran penggunaan umum.

Jenis fungsi di function.json harus diatur ke warmupTrigger.

Langkah berikutnya