Skenario Azure Functions
Seringkali kami membangun sistem untuk bereaksi terhadap serangkaian kejadian penting. Baik Anda membangun API web, menanggapi perubahan database, memproses aliran peristiwa atau pesan, Azure Functions dapat digunakan untuk mengimplementasikannya.
Dalam banyak kasus, fungsi terintegrasi dengan berbagai layanan cloud untuk menyediakan penerapan yang kaya akan fitur. Berikut ini adalah serangkaian skenario umum (tetapi tidak lengkap) untuk Azure Functions.
Pilih bahasa pengembangan Anda di bagian atas artikel.
Memproses unggahan file
Ada beberapa cara untuk menggunakan fungsi 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 diunggah.
Tutorial berikut menggunakan pemicu Blob (berbasis Event Grid) untuk memproses file dalam kontainer blob:
Misalnya, menggunakan 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();
}
}
}
- Fungsi penyimpanan Blob berbasis peristiwa yang dipicu yang mengonversi dokumen PDF ke teks dalam skala besar
- Mengunggah dan menganalisis file dengan Azure Functions dan Blob Storage
- Mengotomatiskan pengubahan ukuran gambar yang diunggah menggunakan Event Grid
- Memicu Azure Functions pada kontainer blob menggunakan langganan peristiwa
Aliran real time dan pemrosesan peristiwa
Begitu banyak telemetri yang dihasilkan dan dikumpulkan dari aplikasi cloud, perangkat IoT, dan perangkat jaringan. Azure Functions dapat memproses data tersebut mendekati real-time sebagai jalur panas, lalu menyimpannya di Azure Cosmos DB untuk digunakan di dasbor analitik.
Fungsi Anda juga dapat menggunakan pemicu peristiwa latensi rendah, seperti Event Grid, dan output real time seperti SignalR untuk memproses data mendekati real-time.
Misalnya, 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 = "InputEventHubConnectionString",
ConsumerGroup = "%Input_EH_ConsumerGroup%")] EventData[] inputMessages,
[EventHub(
"%Output_EH_Name%",
Connection = "OutputEventHubConnectionString")] 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);
}
- pemicu Bus Layanan menggunakan integrasi jaringan virtual
- Streaming dalam skala besar dengan Azure Event Hubs, Functions, dan Azure SQL
- Streaming dalam skala besar dengan Azure Event Hubs, Functions, dan Cosmos DB
- Streaming dalam skala besar dengan Azure Event Hubs dengan produsen Kafka, Functions dengan pemicu Kafka dan Cosmos DB
- Streaming dalam skala besar dengan Azure IoT Hub, Functions, dan Azure SQL
- Pemicu Azure Event Hubs untuk Azure Functions
- Pemicu Apache Kafka untuk Azure Functions
Pembelajaran mesin dan AI
Selain pemrosesan data, Azure Functions dapat digunakan untuk menyimpulkan model. Ekstensi pengikatan Azure OpenAI memungkinkan dengan mudah mengintegrasikan fitur dan perilaku layanan Azure OpenAI ke dalam eksekusi kode fungsi Anda.
Fungsi dapat terhubung ke sumber daya OpenAI untuk mengaktifkan penyelesaian teks dan obrolan, menggunakan asisten, dan memanfaatkan penyematan dan pencarian semantik.
Fungsi mungkin juga memanggil model TensorFlow atau layanan Azure AI untuk memproses dan mengklasifikasikan aliran gambar.
- Tutorial: Penyelesaian teks menggunakan Azure OpenAI
- Sampel: Mengunggah file teks dan mengakses data menggunakan berbagai fitur OpenAI
- Sampel: Ringkasan teks menggunakan AI Cognitive Language Service
- Sampel: Penyelesaian teks menggunakan Azure OpenAI
- Sampel: Memberikan keterampilan asisten untuk model Anda
- Sampel: Menghasilkan penyematan
- Sampel: Memanfaatkan pencarian semantik
- Tutorial: Penyelesaian teks menggunakan Azure OpenAI
- Tutorial: Menerapkan model pembelajaran mesin di Azure Functions dengan Python dan TensorFlow
- Tutorial: Menyebarkan model klasifikasi gambar yang telah dilatih sebelumnya ke Azure Functions dengan PyTorch
- Sampel: Penyelesaian teks menggunakan Azure OpenAI
- Sampel: Memberikan keterampilan asisten untuk model Anda
- Sampel: Menghasilkan penyematan
- Sampel: Memanfaatkan pencarian semantik
- Sampel: Mengobrol menggunakan ChatGPT
- Sampel: LangChain dengan Azure OpenAI dan ChatGPT
Jalankan tugas terjadwal
Functions memungkinkan Anda menjalankan kode berdasarkan jadwal cron yang Anda tentukan.
Lihat cara Membuat fungsi di portal Azure yang berjalan sesuai jadwal.
Database pelanggan layanan keuangan, misalnya, dapat dianalisis untuk entri duplikat setiap 15 menit untuk menghindari beberapa komunikasi yang keluar ke pelanggan yang sama.
[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 mempelajari selengkapnya, lihat Memantau peristiwa GitHub dengan menggunakan webhook dengan Azure Functions.
Misalnya, lihat yang berikut 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();
}
- Artikel: Membuat API tanpa server di Visual Studio menggunakan Azure Functions dan integrasi API Management
- Pelatihan: Mengekspos beberapa aplikasi fungsi sebagai API yang konsisten dengan menggunakan Azure API Management
- Sampel: Aplikasi web dengan C# API dan Azure SQL DB di Static Web Apps and Functions
- Pemicu HTTP Azure Functions
Bangun alur kerja tanpa server
Functions sering menjadi komponen komputasi dalam topologi alur kerja tanpa server, seperti alur kerja Logic Apps. Anda juga dapat membuat orkestrasi yang berjalan lama menggunakan ekstensi Durable Functions. Untuk informasi selengkapnya, lihat Ringkasan Durable Functions.
Merespons perubahan database
Ada proses di mana Anda mungkin perlu mencatat, mengaudit, atau melakukan beberapa operasi lain saat data tersimpan berubah. Pemicu fungsi memberikan cara yang baik untuk mendapatkan pemberitahuan tentang perubahan data pada operasi awal seperti itu.
Perhatikan contoh berikut:
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.
Artikel berikut menunjukkan cara menulis output ke antrean penyimpanan.
Dan artikel ini menunjukkan cara memicu dari antrean atau topik Azure Bus Layanan.