Cloud & IT Cert Prep · Pelajaran

Pemicu dan Pengikatan Azure Functions

Tulis fungsi yang dipicu HTTP, tambahkan pengikatan keluaran untuk menulis ke Azure Queue Storage, lalu pahami model penskalaan otomatis Consumption Plan.

Pelajaran 1 dari 413 langkah

Pemicu dan Pengikatan Azure Functions adalah pelajaran Cloud & IT Cert Prep gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cloud & IT Cert Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.

Apa Itu Azure Functions?

Azure Functions adalah layanan komputasi tanpa server yang memungkinkan Anda menjalankan unit kode kecil (fungsi) sebagai respons terhadap peristiwa tanpa mengelola infrastruktur apa pun. Anda hanya membayar waktu eksekusi dan memori yang digunakan saat fungsi berjalan — tidak ada biaya ketika fungsi tidak aktif. Functions ideal untuk tugas berbasis peristiwa, API ringan, pekerjaan terjadwal, dan integrasi layanan cloud tanpa server yang selalu aktif.

Pemicu: Apa yang Memulai Fungsi

Setiap Azure Function harus memiliki tepat satu pemicu yang menentukan peristiwa penyebab eksekusinya. Pemicu umum mencakup HTTP (permintaan HTTP masuk), Timer (jadwal CRON), Blob Storage (blob baru dalam container), Queue Storage (pesan baru dalam antrean), Event Hub (aliran peristiwa), Service Bus (pesan antrean/topik), dan Cosmos DB (umpan perubahan). Pemicu menerima data peristiwa dan meneruskannya ke kode fungsi Anda.

// HTTP trigger function (JavaScript/Node.js)
module.exports = async function (context, req) {
  const name = req.query.name || (req.body && req.body.name);
  const message = name ? 'Hello, ' + name : 'Pass a name in the query or body';
  context.res = {
    status: 200,
    body: { message }
  };
};

Function.json: Konfigurasi Pemicu dan Binding

Dalam bahasa yang tidak dikompilasi (JavaScript, Python), file function.json di direktori setiap fungsi mendeklarasikan pemicu dan binding-nya. File ini memetakan sumber peristiwa dan output ke parameter bernama dalam kode fungsi Anda. Untuk C# dan Java, binding dideklarasikan menggunakan atribut/anotasi langsung dalam kode. Runtime Functions membaca konfigurasi tersebut dan menyiapkan koneksi ke layanan Azure secara otomatis.

// function.json — HTTP trigger + Queue output binding
{
  'bindings': [
    {
      'authLevel': 'function',
      'type': 'httpTrigger',
      'direction': 'in',
      'name': 'req',
      'methods': ['post']
    },
    {
      'type': 'http',
      'direction': 'out',
      'name': 'res'
    },
    {
      'type': 'queue',
      'direction': 'out',
      'name': 'outputQueue',
      'queueName': 'processing-queue',
      'connection': 'AzureWebJobsStorage'
    }
  ]
}

Binding Output: Menulis ke Layanan

Binding output memungkinkan fungsi Anda menulis data ke layanan Azure (Blob Storage, Queue Storage, Cosmos DB, Event Hub, dan sebagainya) tanpa mengelola SDK atau string koneksi. Anda cukup menetapkan nilai ke parameter binding output, lalu runtime Functions menangani penulisannya. Hal ini sangat mengurangi kode boilerplate dan memisahkan fungsi Anda dari detail implementasi layanan Azure tertentu.

// HTTP trigger with Queue output binding (Node.js)
module.exports = async function (context, req) {
  const orderData = req.body;

  // Write to queue via output binding -- no SDK needed!
  context.bindings.outputQueue = JSON.stringify({
    orderId: orderData.id,
    timestamp: new Date().toISOString()
  });

  context.res = { status: 202, body: 'Order queued' };
};

Pemicu Timer dengan Ekspresi CRON

Pemicu Timer menjalankan fungsi sesuai jadwal yang ditentukan oleh ekspresi CRON. Azure Functions menggunakan CRON 6 bagian: {seconds} {minutes} {hours} {day} {month} {day-of-week}. Gunakan 0 0 * * * * untuk setiap jam, 0 0 0 * * * untuk tengah malam setiap hari, atau 0 0 9-17 * * 1-5 untuk setiap jam selama jam kerja pada hari kerja. Fungsi Timer berguna untuk pekerjaan pembersihan, pembuatan laporan, dan pemeriksaan kesehatan.

// Timer trigger — runs every day at 02:00 UTC
// function.json binding:
// {
//   'type': 'timerTrigger',
//   'schedule': '0 0 2 * * *',
//   'name': 'myTimer'
// }

module.exports = async function (context, myTimer) {
  const now = new Date().toISOString();
  context.log('Daily cleanup started at', now);
  // ... perform cleanup logic ...
  context.log('Cleanup completed');
};

Consumption Plan: Penskalaan Tanpa Server

Pada Consumption plan, Azure Functions secara otomatis menskalakan dari nol hingga ratusan instans berdasarkan laju peristiwa pemicu. Anda hanya membayar jumlah eksekusi dan GB-detik memori yang digunakan — 1 juta eksekusi pertama setiap bulan gratis. Host Functions dapat menskalakan pemicu HTTP hingga 200 instans dan pemicu antrean hingga jumlah pesan antrean yang diproses secara bersamaan. Cold start (eksekusi pertama setelah tidak aktif) menambahkan latensi singkat, yang dikurangi oleh instans siap pakai milik Premium plan.

# View billing details for a function app
az functionapp show \
  --name myFunctionApp \
  --resource-group MyRG \
  --query '{name:name, plan:serverFarmId, state:state}'

# Create a Function App on Consumption plan
az functionapp create \
  --name myFunctionApp \
  --resource-group MyRG \
  --consumption-plan-location eastus \
  --runtime node \
  --runtime-version 18 \
  --storage-account mystorageaccount

Premium dan Dedicated Plan

Premium plan menghilangkan cold start dengan mempertahankan instans siap pakai, menambahkan integrasi VNet, dan memungkinkan timeout eksekusi yang lebih lama (hingga 60 menit). Dedicated (App Service) plan menjalankan fungsi pada App Service plan yang sama dengan aplikasi web, sehingga berguna ketika Anda memerlukan biaya yang dapat diprediksi atau memiliki komputasi App Service yang sudah tersedia. Pilih Consumption untuk efisiensi biaya tanpa server yang sebenarnya; pilih Premium untuk fungsi yang sensitif terhadap performa atau terhubung ke VNet.

# Create a Function App on Premium plan (EP1)
az functionapp plan create \
  --name MyPremiumPlan \
  --resource-group MyRG \
  --location eastus \
  --sku EP1 \
  --is-linux

az functionapp create \
  --name myFunctionAppPremium \
  --resource-group MyRG \
  --plan MyPremiumPlan \
  --runtime python \
  --runtime-version 3.11 \
  --storage-account mystorageaccount

Menerapkan Azure Functions

Terapkan Azure Functions menggunakan Azure Functions Core Tools (func azure functionapp publish), ekstensi VS Code, penerapan ZIP melalui Azure CLI, atau pipeline CI/CD di Azure Pipelines atau GitHub Actions. Di lingkungan produksi, selalu lakukan penerapan dari pipeline, bukan dari komputer pengembang, untuk memastikan versi yang telah diuji dan diberi tag mencapai produksi. Runtime Functions juga mendukung penerapan container Docker untuk kendali penuh atas lingkungan runtime.

# Local development: install Core Tools
npm install -g azure-functions-core-tools@4

# Start locally (triggers work against real Azure services)
func start

# Deploy to Azure
func azure functionapp publish myFunctionApp

# Or deploy via Azure CLI (ZIP deploy)
zip -r function.zip . --exclude '.git/*'
az functionapp deployment source config-zip \
  --name myFunctionApp \
  --resource-group MyRG \
  --src function.zip

Pengaturan Aplikasi dan Referensi Key Vault

Function Apps menyimpan konfigurasi dalam pengaturan aplikasi — pengaturan ini muncul sebagai variabel lingkungan dalam kode fungsi Anda. Simpan string koneksi, kunci API, dan rahasia sebagai pengaturan aplikasi. Untuk produksi, gunakan referensi Key Vault agar nilainya disimpan di Key Vault dan hanya dirujuk berdasarkan nama dalam pengaturan aplikasi, sehingga rahasia tidak muncul di portal dan artefak penerapan. Aktifkan identitas terkelola pada aplikasi fungsi untuk mengautentikasi ke Key Vault tanpa kredensial.

# Set application settings
az functionapp config appsettings set \
  --name myFunctionApp \
  --resource-group MyRG \
  --settings \
    STORAGE_CONNECTION='@Microsoft.KeyVault(SecretUri=https://mykv.vault.azure.net/secrets/storage-conn/)' \
    COSMOS_DB_URI='https://mycosmosdb.documents.azure.com'

# In function code, read as normal env var
# const storageConn = process.env['STORAGE_CONNECTION'];

Memantau Functions dengan Application Insights

Azure Functions terintegrasi dengan Application Insights secara otomatis ketika Anda menyediakan kunci instrumentasi atau string koneksi. Setiap eksekusi fungsi dilacak sebagai permintaan, termasuk durasi, keberhasilan/kegagalan, dan properti khusus. Gunakan Live Metrics Application Insights untuk memantau eksekusi secara waktu nyata selama pengujian, serta panel Failures untuk mendiagnosis kesalahan dengan jejak pengecualian lengkap dan panggilan dependensi.

# Connect Application Insights to a Function App
az functionapp config appsettings set \
  --name myFunctionApp \
  --resource-group MyRG \
  --settings \
    APPLICATIONINSIGHTS_CONNECTION_STRING='InstrumentationKey=xxxxxxxx;...'

# Custom telemetry in function code (Node.js)
const appInsights = require('applicationinsights');
appInsights.setup().start();
const client = appInsights.defaultClient;
client.trackEvent({ name: 'OrderProcessed', properties: { orderId: '123' } });

Perilaku Konkruensi dan Penskalaan

Untuk fungsi yang dipicu antrean, host Functions memproses beberapa pesan secara paralel. Konfigurasikan batchSize dalam host.json untuk mengatur jumlah pesan yang diproses satu instans secara bersamaan. Untuk pemicu HTTP, scale-out secara otomatis menambahkan instans baru. Gunakan maxConcurrentCalls (pemicu Service Bus) atau maxPollingInterval (pemicu antrean) untuk menyesuaikan throughput dan mencegah layanan hilir seperti basis data kewalahan selama peristiwa scale-out.

// host.json — tune queue trigger concurrency
{
  'version': '2.0',
  'extensions': {
    'queues': {
      'batchSize': 16,          // messages per instance
      'newBatchThreshold': 8,   // fetch more when < 8 remain
      'maxPollingInterval': '00:00:02',
      'visibilityTimeout': '00:05:00'
    }
  },
  'functionTimeout': '00:10:00'
}

Pemeriksaan Singkat

Uji pemahaman Anda tentang konsep Microsoft Azure Fundamentals (AZ-900) dari pelajaran ini.

Ringkasan Pelajaran

Dalam pelajaran ini, Anda telah mempelajari bahwa pemicu menentukan peristiwa yang memulai suatu fungsi (HTTP, Timer, Queue, Blob, dan lainnya), binding keluaran memungkinkan fungsi menulis ke layanan Azure tanpa kode SDK, dan paket Consumption menyediakan penskalaan tanpa server dengan pembayaran per eksekusi, mulai dari nol. Selanjutnya, kita akan membahas Durable Functions untuk alur kerja stateful.

Gratis untuk memulai

Belajar Cloud & IT Cert Prep dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
150
Pelajaran
600

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pemicu dan Pengikatan Azure Functions” gratis?

Ya — teks lengkap “Pemicu dan Pengikatan Azure Functions” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cloud & IT Cert Prep, upgrade ke CoddyKit PRO. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Pemicu dan Pengikatan Azure Functions”?

Tulis fungsi yang dipicu HTTP, tambahkan pengikatan keluaran untuk menulis ke Azure Queue Storage, lalu pahami model penskalaan otomatis Consumption Plan. Kamu berlatih Cloud & IT Cert Prep dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Cloud & IT Cert Prep?

Tidak diperlukan pengalaman sebelumnya. Cloud & IT Cert Prep di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Pemicu dan Pengikatan Azure Functions” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Cloud & IT Cert Prep ini?

Ya. Setiap pelajaran Cloud & IT Cert Prep menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Pemicu dan Pengikatan Azure Functions
  2. Durable Functions untuk Alur Kerja Berstatus
  3. Azure Logic Apps
  4. Event Grid dan Arsitektur Berbasis Peristiwa
← Kembali ke Cloud & IT Cert Prep