Trigger und Bindings von Azure Functions
Schreiben Sie eine durch HTTP ausgelöste Funktion, fügen Sie ein Output-Binding zum Schreiben in Azure Queue Storage hinzu und verstehen Sie das automatische Skalierungsmodell des Consumption Plans.
Trigger und Bindings von Azure Functions ist eine kostenlose Cloud & IT Cert Prep-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cloud & IT Cert Prep-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cloud & IT Cert Prep-Kurs umfasst insgesamt 4 Lektionen.
Was sind Azure Functions?
Azure Functions ist ein serverloser Computedienst, mit dem Sie als Reaktion auf Ereignisse kleine Codeeinheiten (Funktionen) ausführen können, ohne Infrastruktur verwalten zu müssen. Sie zahlen nur für die Ausführungszeit und den Speicher, die während der Ausführung Ihrer Funktion verwendet werden — für eine im Leerlauf befindliche Funktion fallen keine Kosten an. Functions eignen sich ideal für ereignisgesteuerte Aufgaben, leichtgewichtige APIs, geplante Aufträge und die Integration von Cloud-Diensten ohne persistenten Server.
Trigger: Was startet eine Funktion?
Jede Azure Function muss genau einen Trigger besitzen, der das auslösende Ereignis definiert. Zu den gängigen Triggern gehören HTTP (eingehende HTTP-Anforderung), Timer (CRON-Zeitplan), Blob Storage (neuer Blob in einem Container), Queue Storage (neue Nachricht in einer Warteschlange), Event Hub (Ereignisstream), Service Bus (Nachricht in einer Warteschlange oder einem Topic) und Cosmos DB (Change Feed). Der Trigger empfängt die Ereignisdaten und übergibt sie an Ihren Funktionscode.
// 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: Konfiguration von Triggern und Bindings
In nicht kompilierten Sprachen (JavaScript, Python) deklariert eine Datei function.json im Verzeichnis jeder Funktion deren Trigger und Bindings. Diese Datei ordnet Ereignisquellen und Ausgaben benannten Parametern in Ihrem Funktionscode zu. Für C# und Java werden Bindings mithilfe von Attributen/Annotationen direkt im Code deklariert. Die Functions-Runtime liest die Konfiguration und richtet automatisch die Verbindungen zu Azure-Diensten ein.
// 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'
}
]
}Output-Bindings: In Dienste schreiben
Output-Bindings ermöglichen es Ihrer Funktion, Daten in Azure-Dienste (Blob Storage, Queue Storage, Cosmos DB, Event Hub usw.) zu schreiben, ohne SDKs oder Verbindungszeichenfolgen zu verwalten. Sie weisen dem Parameter des Output-Bindings einfach einen Wert zu; die Functions-Runtime übernimmt den Schreibvorgang. Dadurch wird der erforderliche Boilerplate-Code erheblich reduziert und Ihre Funktion von den Details der jeweiligen Azure-Dienstimplementierung entkoppelt.
// 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' };
};Timer-Trigger mit CRON-Ausdrücken
Der Timer-Trigger führt eine Funktion nach einem Zeitplan aus, der durch einen CRON-Ausdruck definiert ist. Azure Functions verwendet einen sechsteiligen CRON-Ausdruck: {seconds} {minutes} {hours} {day} {month} {day-of-week}. Verwenden Sie 0 0 * * * * für eine stündliche Ausführung, 0 0 0 * * * für täglich um Mitternacht oder 0 0 9-17 * * 1-5 für jede Stunde während der Geschäftszeiten an Werktagen. Timer-Funktionen eignen sich für Bereinigungsaufträge, die Erstellung von Berichten und Zustandsprüfungen.
// 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: Serverlose Skalierung
Im Consumption-Plan skaliert Azure Functions abhängig von der Rate der Triggerereignisse automatisch von null auf Hunderte Instanzen. Sie zahlen nur für die Anzahl der Ausführungen und die verbrauchten GB-Sekunden an Speicher — die ersten 1 Million Ausführungen pro Monat sind kostenlos. Der Functions-Host kann einen HTTP-Trigger auf bis zu 200 Instanzen skalieren und einen Queue-Trigger entsprechend der Anzahl der Warteschlangennachrichten gleichzeitig verarbeiten. Ein Cold Start (die erste Ausführung nach einer Leerlaufphase) verursacht eine kurze Verzögerung, die durch vorgewärmte Instanzen im Premium-Plan verringert wird.
# 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 mystorageaccountPremium- und Dedicated-Pläne
Der Premium-Plan verhindert Cold Starts durch vorgewärmte Instanzen, bietet VNet-Integration und ermöglicht längere Ausführungs-Timeouts (bis zu 60 Minuten). Der Dedicated-Plan (App Service) führt Funktionen im selben App Service-Plan wie Web-Apps aus. Das ist nützlich, wenn Sie planbare Kosten benötigen oder vorhandene App-Service-Compute-Ressourcen nutzen möchten. Wählen Sie den Consumption-Plan für echte serverlose Wirtschaftlichkeit und den Premium-Plan für Funktionen mit hohen Anforderungen an die Leistung oder mit VNet-Verbindung.
# 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 mystorageaccountBereitstellen von Azure Functions
Stellen Sie Azure Functions mithilfe der Azure Functions Core Tools (func azure functionapp publish), der VS Code-Erweiterung, per ZIP-Bereitstellung über die Azure CLI oder über eine CI/CD-Pipeline in Azure Pipelines oder GitHub Actions bereit. Stellen Sie in der Produktion immer über eine Pipeline statt vom Entwicklercomputer aus bereit, damit nur getestete und gekennzeichnete Versionen die Produktion erreichen. Die Functions-Runtime unterstützt außerdem die Bereitstellung von Docker-Containern, um die Laufzeitumgebung vollständig zu kontrollieren.
# 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.zipAnwendungseinstellungen und Key Vault-Referenzen
Function Apps speichern die Konfiguration in Anwendungseinstellungen — diese werden in Ihrem Funktionscode als Umgebungsvariablen angezeigt. Speichern Sie Verbindungszeichenfolgen, API-Schlüssel und Geheimnisse als Anwendungseinstellungen. Verwenden Sie in der Produktion Key Vault-Referenzen, sodass der Wert in Key Vault gespeichert und in der Anwendungseinstellung nur über seinen Namen referenziert wird. Dadurch bleiben Geheimnisse aus dem Portal und den Bereitstellungsartefakten heraus. Aktivieren Sie für die Function App eine verwaltete Identität, um sich ohne Anmeldeinformationen bei Key Vault zu authentifizieren.
# 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'];Überwachen von Functions mit Application Insights
Azure Functions lässt sich automatisch in Application Insights integrieren, wenn Sie einen Instrumentierungsschlüssel oder eine Verbindungszeichenfolge angeben. Jede Funktionsausführung wird als Anforderung erfasst, einschließlich Dauer, Erfolg oder Fehler sowie benutzerdefinierter Eigenschaften. Verwenden Sie Live Metrics von Application Insights, um Ausführungen während des Testens in Echtzeit zu beobachten, und den Bereich Failures, um Fehler mithilfe vollständiger Ausnahmeablaufverfolgungen und Aufrufen von Abhängigkeiten zu diagnostizieren.
# 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' } });Nebenläufigkeit und Skalierungsverhalten
Bei Funktionen mit Queue-Trigger verarbeitet die Functions-Runtime mehrere Nachrichten parallel. Konfigurieren Sie batchSize in host.json, um festzulegen, wie viele Nachrichten eine einzelne Instanz gleichzeitig verarbeitet. Bei HTTP-Triggern werden beim Scale-out automatisch neue Instanzen hinzugefügt. Verwenden Sie maxConcurrentCalls (Service-Bus-Trigger) oder maxPollingInterval (Queue-Trigger), um den Durchsatz abzustimmen und eine Überlastung nachgelagerter Dienste wie Datenbanken während Scale-out-Ereignissen zu vermeiden.
// 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'
}Schnelltest
Testen Sie Ihr Verständnis der Konzepte von Microsoft Azure Fundamentals (AZ-900) aus dieser Lektion.
Lektionszusammenfassung
In dieser Lektion haben Sie Folgendes gelernt: Trigger definieren das Ereignis, das eine Funktion startet (HTTP, Timer, Queue, Blob usw.), Ausgabebindings ermöglichen es Funktionen, ohne SDK-Code in Azure-Dienste zu schreiben, und der Consumption-Plan bietet echtes serverloses Skalieren von null an mit Abrechnung pro Ausführung. Als Nächstes beschäftigen wir uns mit Durable Functions für zustandsbehaftete Workflows.
Häufig gestellte Fragen
Ist die Lektion „Trigger und Bindings von Azure Functions“ kostenlos?
Ja — der vollständige Text von „Trigger und Bindings von Azure Functions“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cloud & IT Cert Prep-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cloud & IT Cert Prep-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Trigger und Bindings von Azure Functions“?
Schreiben Sie eine durch HTTP ausgelöste Funktion, fügen Sie ein Output-Binding zum Schreiben in Azure Queue Storage hinzu und verstehen Sie das automatische Skalierungsmodell des Consumption Plans. Du übst Cloud & IT Cert Prep mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Cloud & IT Cert Prep zu starten?
Keine Vorkenntnisse erforderlich. Cloud & IT Cert Prep auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Trigger und Bindings von Azure Functions“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Cloud & IT Cert Prep-Lektion Code schreiben und ausführen?
Ja. Jede Cloud & IT Cert Prep-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Trigger und Bindings von Azure Functions
- Durable Functions für zustandsbehaftete Workflows
- Azure Logic Apps
- Event Grid und ereignisgesteuerte Architektur