Bird
Raised Fist0
Azurecloud~30 mins

Trigger types (HTTP, Timer, Blob, Queue) in Azure - Mini Project: Build & Apply

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Azure Function Trigger Types
📖 Scenario: You are building an Azure Function app that responds to different events in the cloud. These events include HTTP requests, scheduled timer events, new files uploaded to storage, and messages added to a queue.This project will guide you to create simple Azure Functions with four different trigger types: HTTP trigger, Timer trigger, Blob trigger, and Queue trigger.
🎯 Goal: Create four Azure Functions each with a different trigger type: HTTP, Timer, Blob, and Queue. Each function should have the correct trigger configuration in the function.json file.
📋 What You'll Learn
Create an HTTP triggered Azure Function named HttpTriggerFunction
Create a Timer triggered Azure Function named TimerTriggerFunction that runs every 5 minutes
Create a Blob triggered Azure Function named BlobTriggerFunction that triggers on new blobs in container sample-container
Create a Queue triggered Azure Function named QueueTriggerFunction that triggers on messages in queue sample-queue
💡 Why This Matters
🌍 Real World
Azure Functions are used to run small pieces of code in response to events like web requests, scheduled jobs, file uploads, or queue messages without managing servers.
💼 Career
Understanding Azure Function triggers is essential for cloud developers and architects to build scalable, event-driven applications on Microsoft Azure.
Progress0 / 4 steps
1
Create HTTP Trigger Function Configuration
Create a file named function.json for the HTTP triggered Azure Function called HttpTriggerFunction. The trigger type must be httpTrigger with methods get and post. The authLevel must be function.
Azure
Hint

Use httpTrigger as the type and specify methods as ["get", "post"].

2
Add Timer Trigger Function Configuration
Add a new function.json configuration for the Timer triggered Azure Function named TimerTriggerFunction. Use trigger type timerTrigger with a schedule that runs every 5 minutes using a CRON expression. The direction must be in and the name must be myTimer.
Azure
Hint

The CRON expression 0 */5 * * * * runs every 5 minutes.

3
Add Blob Trigger Function Configuration
Add a new function.json configuration for the Blob triggered Azure Function named BlobTriggerFunction. Use trigger type blobTrigger with the path set to sample-container/{name}. The direction must be in and the name must be myBlob.
Azure
Hint

Use blobTrigger type and set path to sample-container/{name}.

4
Add Queue Trigger Function Configuration
Add a new function.json configuration for the Queue triggered Azure Function named QueueTriggerFunction. Use trigger type queueTrigger with the queue name set to sample-queue. The direction must be in and the name must be myQueueItem.
Azure
Hint

Use queueTrigger type and set queueName to sample-queue.

Practice

(1/5)
1. Which Azure Function trigger type starts a function when a web request is received?
easy
A. Queue trigger
B. Timer trigger
C. HTTP trigger
D. Blob trigger

Solution

  1. Step 1: Understand trigger types

    HTTP triggers start functions when they receive web requests.
  2. Step 2: Match trigger to event

    Since the question asks about web requests, HTTP trigger is the correct match.
  3. Final Answer:

    HTTP trigger -> Option C
  4. Quick Check:

    Web request triggers = HTTP trigger [OK]
Hint: Web requests always use HTTP triggers [OK]
Common Mistakes:
  • Confusing Timer with HTTP
  • Thinking Blob triggers handle web requests
  • Mixing Queue triggers with HTTP
2. Which of the following is the correct way to define a Timer trigger in Azure Functions using function.json?
easy
A. {"bindings": [{"type": "timerTrigger", "direction": "in", "name": "myTimer", "schedule": "0 */5 * * * *"}]}
B. {"bindings": [{"type": "httpTrigger", "direction": "in", "name": "req"}]}
C. {"bindings": [{"type": "blobTrigger", "direction": "in", "name": "myBlob", "path": "samples-workitems/{name}"}]}
D. {"bindings": [{"type": "queueTrigger", "direction": "in", "name": "myQueueItem", "queueName": "myqueue-items"}]}

Solution

  1. Step 1: Identify Timer trigger syntax

    Timer triggers use type "timerTrigger" and include a "schedule" property.
  2. Step 2: Match JSON with Timer trigger

    {"bindings": [{"type": "timerTrigger", "direction": "in", "name": "myTimer", "schedule": "0 */5 * * * *"}]} has type "timerTrigger" and a cron schedule, matching Timer trigger format.
  3. Final Answer:

    Option A JSON with timerTrigger and schedule -> Option A
  4. Quick Check:

    Timer trigger needs "timerTrigger" type and schedule [OK]
Hint: Timer triggers always include a cron schedule in function.json [OK]
Common Mistakes:
  • Using httpTrigger type for Timer
  • Missing schedule property
  • Confusing Blob or Queue trigger syntax
3. Given this Azure Function code snippet using a Queue trigger:
public static void Run([QueueTrigger("myqueue-items")] string myQueueItem, ILogger log) {
    log.LogInformation($"Processed queue item: {myQueueItem}");
}

What will be logged when a message "Hello" is added to the queue?
medium
A. Processed queue item: Hello
B. Processed queue item: myqueue-items
C. Queue trigger error
D. No log output

Solution

  1. Step 1: Understand Queue trigger behavior

    The function runs when a message arrives in "myqueue-items" queue, passing the message content as myQueueItem.
  2. Step 2: Analyze log output

    The log prints "Processed queue item: " plus the message content, which is "Hello".
  3. Final Answer:

    Processed queue item: Hello -> Option A
  4. Quick Check:

    Queue message content logged = "Processed queue item: Hello" [OK]
Hint: Queue trigger passes message content as parameter [OK]
Common Mistakes:
  • Logging queue name instead of message
  • Expecting error without cause
  • Assuming no output from trigger
4. You wrote this Azure Function with a Blob trigger:
public static void Run([BlobTrigger("samples-workitems/{name}")] Stream myBlob, string name, ILogger log) {
    log.LogInformation($"Blob name: {name}, Size: {myBlob.Length} bytes");
}

But the function never runs when you upload blobs. What is the most likely cause?
medium
A. Blob triggers require HTTP requests to start
B. The Blob trigger path is incorrect or container name is wrong
C. The function is missing a Timer trigger
D. The function must use Queue trigger instead

Solution

  1. Step 1: Check Blob trigger path

    The Blob trigger listens to a specific container path; if the container name or path is wrong, it won't trigger.
  2. Step 2: Eliminate other causes

    Timer triggers or HTTP requests are unrelated; Blob triggers respond to storage changes only.
  3. Final Answer:

    The Blob trigger path is incorrect or container name is wrong -> Option B
  4. Quick Check:

    Blob trigger needs correct container path to run [OK]
Hint: Blob trigger must match exact container path [OK]
Common Mistakes:
  • Expecting Timer or HTTP triggers to start Blob
  • Wrong container or path in BlobTrigger attribute
  • Confusing Blob and Queue triggers
5. You want to run an Azure Function every day at 3 AM and also process any new files uploaded to a Blob container immediately. Which trigger types should you combine in your solution?
hard
A. HTTP trigger for schedule and Queue trigger for file uploads
B. Blob trigger for schedule and HTTP trigger for file uploads
C. Queue trigger for schedule and Timer trigger for file uploads
D. Timer trigger for schedule and Blob trigger for file uploads

Solution

  1. Step 1: Identify trigger for scheduled runs

    Timer triggers run functions on schedules like daily at 3 AM.
  2. Step 2: Identify trigger for file uploads

    Blob triggers respond immediately to new files uploaded to Blob storage.
  3. Step 3: Combine triggers correctly

    Use Timer trigger for scheduled runs and Blob trigger for file events.
  4. Final Answer:

    Timer trigger for schedule and Blob trigger for file uploads -> Option D
  5. Quick Check:

    Schedule = Timer, File upload = Blob trigger [OK]
Hint: Schedule needs Timer; file events need Blob trigger [OK]
Common Mistakes:
  • Using HTTP trigger for schedule
  • Mixing Queue with schedule incorrectly
  • Confusing Blob and HTTP triggers