Bagikan melalui


Skenario Fungsi Azure

Seringkali, Anda membangun sistem yang bereaksi terhadap serangkaian peristiwa penting. Baik Anda membuat API web, menanggapi perubahan database, atau memproses aliran peristiwa atau pesan, Anda dapat menggunakan Azure Functions untuk menerapkan sistem ini.

Dalam banyak kasus, fungsi terintegrasi dengan berbagai layanan cloud untuk menyediakan penerapan yang kaya akan fitur. Daftar berikut menunjukkan skenario umum (tetapi tidak berarti lengkap) untuk Azure Functions.

Pilih bahasa pengembangan Anda di bagian atas artikel.

Memproses unggahan file

Anda dapat menggunakan fungsi dalam beberapa cara untuk memproses file ke dalam atau di luar kontainer penyimpanan blob. Untuk mempelajari selengkapnya tentang opsi pemicu pada kontainer blob, lihat Bekerja dengan blob dalam dokumentasi praktik terbaik.

Misalnya, dalam solusi ritel, sistem mitra dapat mengirimkan informasi katalog produk sebagai file ke penyimpanan blob. Anda dapat menggunakan fungsi yang dipicu blob untuk memvalidasi, mengubah, dan memproses file ke dalam sistem utama saat Anda mengunggahnya.

Diagram proses pengunggahan file menggunakan Azure Functions.

Tutorial berikut menggunakan pemicu Blob (berbasis Event Grid) untuk memproses file dalam kontainer blob:

Misalnya, gunakan pemicu blob dengan langganan peristiwa pada kontainer blob:

[FunctionName("ProcessCatalogData")]
public static async Task Run([BlobTrigger("catalog-uploads/{name}", Source = BlobTriggerSource.EventGrid, Connection = "<NAMED_STORAGE_CONNECTION>")] Stream myCatalogData, string name, ILogger log)
{
    log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myCatalogData.Length} Bytes");

    using (var reader = new StreamReader(myCatalogData))
    {
        var catalogEntry = await reader.ReadLineAsync();
        while(catalogEntry !=null)
        {
            // Process the catalog entry
            // ...

            catalogEntry = await reader.ReadLineAsync();
        }
    }
}

Aliran real time dan pemrosesan peristiwa

Aplikasi cloud, perangkat IoT, dan perangkat jaringan menghasilkan dan mengumpulkan sejumlah besar telemetri. Azure Functions dapat memproses data tersebut dalam hampir waktu nyata sebagai jalur cepat, lalu menyimpannya di Azure Cosmos DB untuk digunakan pada dasbor analitik.

Fungsi Anda juga dapat menggunakan pemicu peristiwa latensi rendah, seperti Event Grid, dan keluaran waktu nyata seperti SignalR untuk memproses data hampir waktu nyata.

Diagram proses streaming real time menggunakan Azure Functions.

Misalnya, Anda dapat menggunakan pemicu pusat aktivitas untuk membaca dari pusat aktivitas dan pengikatan output untuk menulis ke pusat aktivitas setelah berdebat dan mengubah peristiwa:

[FunctionName("ProcessorFunction")]
public static async Task Run(
    [EventHubTrigger(
        "%Input_EH_Name%",
        Connection = "InputEventHubConnectionSetting",
        ConsumerGroup = "%Input_EH_ConsumerGroup%")] EventData[] inputMessages,
    [EventHub(
        "%Output_EH_Name%",
        Connection = "OutputEventHubConnectionSetting")] IAsyncCollector<SensorDataRecord> outputMessages,
    PartitionContext partitionContext,
    ILogger log)
{
    var debatcher = new Debatcher(log);
    var debatchedMessages = await debatcher.Debatch(inputMessages, partitionContext.PartitionId);

    var xformer = new Transformer(log);
    await xformer.Transform(debatchedMessages, partitionContext.PartitionId, outputMessages);
}

Pembelajaran mesin dan AI

Azure Functions menyediakan sumber daya komputasi tanpa server yang terintegrasi dengan layanan AI dan Azure untuk menyederhanakan pembangunan aplikasi cerdas yang dihosting cloud. Anda dapat menggunakan model pemrograman Functions untuk membuat dan menghosting server Protokol Konten Model jarak jauh (MCP) dan menerapkan berbagai alat AI. Untuk informasi selengkapnya, lihat Alat dan server MCP.

Ekstensi pengikatan Azure OpenAI memungkinkan Anda mengintegrasikan fitur dan perilaku AI dari layanan Azure OpenAI, seperti retrieval-augmented generation (RAG) yang memperkuat pengambilan data, ke dalam eksekusi kode fungsi Anda. Untuk informasi selengkapnya, lihat Generasi Berbantu Pengambilan.

Fungsi mungkin juga memanggil model TensorFlow atau layanan Azure AI untuk memproses dan mengklasifikasikan aliran gambar.

Diagram pembelajaran mesin dan proses AI menggunakan Azure Functions.

Untuk informasi selengkapnya, lihat Menggunakan alat dan model AI di Azure Functions.

Jalankan tugas terjadwal

Functions memungkinkan Anda menjalankan kode berdasarkan jadwal cron yang Anda tentukan.

Lihat Membuat fungsi di portal Microsoft Azure yang berjalan sesuai jadwal.

Misalnya, Anda dapat menganalisis database pelanggan layanan keuangan untuk entri duplikat setiap 15 menit untuk menghindari beberapa komunikasi yang keluar ke pelanggan yang sama.

Diagram tugas terjadwal di mana fungsi membersihkan database setiap 15 menit dengan menghapus duplikasi entri berdasarkan logika bisnis.

Misalnya, lihat cuplikan kode ini:

[FunctionName("TimerTriggerCSharp")]
public static void Run([TimerTrigger("0 */15 * * * *")]TimerInfo myTimer, ILogger log)
{
    if (myTimer.IsPastDue)
    {
        log.LogInformation("Timer is running late!");
    }
    log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");

    // Perform the database deduplication
}

Membangun API web yang dapat diskalakan

Fungsi yang dipicu HTTP menentukan titik akhir HTTP. Titik akhir ini menjalankan kode fungsi yang dapat terhubung ke layanan lain secara langsung atau dengan menggunakan ekstensi pengikatan. Anda dapat menyusun titik akhir ke dalam API berbasis web.

Anda juga dapat menggunakan titik akhir fungsi yang dipicu HTTP sebagai integrasi webhook, seperti webhook GitHub. Dengan cara ini, Anda dapat membuat fungsi yang memproses data dari peristiwa GitHub. Untuk informasi selengkapnya, lihat Memantau peristiwa GitHub dengan menggunakan webhook dengan Azure Functions.

Diagram pemrosesan permintaan HTTP menggunakan Azure Functions.

Misalnya, lihat cuplikan kode ini:

[FunctionName("InsertName")]
public static async Task<IActionResult> Run(
    [HttpTrigger(AuthorizationLevel.Function, "post")] HttpRequest req,
    [CosmosDB(
        databaseName: "my-database",
        collectionName: "my-container",
        ConnectionStringSetting = "CosmosDbConnectionString")]IAsyncCollector<dynamic> documentsOut,
    ILogger log)
{
    string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
    dynamic data = JsonConvert.DeserializeObject(requestBody);
    string name = data?.name;

    if (name == null)
    {
        return new BadRequestObjectResult("Please pass a name in the request body json");
    }

    // Add a JSON document to the output container.
    await documentsOut.AddAsync(new
    {
        // create a random ID
        id = System.Guid.NewGuid().ToString(), 
        name = name
    });

    return new OkResult();
}

Bangun alur kerja tanpa server

Fungsi sering berfungsi sebagai komponen komputasi dalam topologi alur kerja tanpa server, seperti alur kerja Logic Apps. Anda juga dapat membuat orkestrasi yang berjalan lama dengan menggunakan ekstensi Durable Functions. Untuk informasi selengkapnya, lihat Gambaran Umum Durable Functions.

Diagram kombinasi dari serangkaian alur kerja tanpa server tertentu menggunakan Azure Functions.

Merespons perubahan database

Beberapa proses perlu mencatat, mengaudit, atau melakukan operasi lain saat data tersimpan berubah. Pemicu fungsi memberikan cara yang baik untuk mendapatkan pemberitahuan tentang perubahan data pada operasi awal seperti itu.

Diagram fungsi yang digunakan untuk merespons perubahan database.

Membuat sistem pesan yang andal

Anda dapat menggunakan Functions dengan layanan olahpesan Azure untuk membuat solusi olahpesan berbasis peristiwa tingkat lanjut.

Misalnya, Anda dapat menggunakan pemicu pada antrean Azure Storage sebagai cara untuk menyatukan serangkaian eksekusi fungsi. Atau gunakan antrean dan pemicu bus layanan untuk sistem pemesanan online.

Diagram Azure Functions pada sistem pesan yang andal.

Artikel ini menunjukkan cara menulis output ke antrean penyimpanan:

Artikel-artikel ini menunjukkan cara memicu berdasarkan antrean atau topik Azure Service Bus.

Langkah berikutnya