Bird
Raised Fist0
Azurecloud~5 mins

Trigger types (HTTP, Timer, Blob, Queue) in Azure - Commands & Configuration

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
Introduction
Triggers start your Azure Function automatically when something happens. They help your function respond to events like web requests, scheduled times, or new files.
When you want your function to run when someone visits a web URL (HTTP trigger).
When you need your function to run on a schedule, like every hour (Timer trigger).
When you want your function to run when a new file is added to Azure Blob Storage (Blob trigger).
When you want your function to run when a new message arrives in an Azure Storage Queue (Queue trigger).
Config File - function.json
function.json
{
  "bindings": [
    {
      "authLevel": "function",
      "type": "httpTrigger",
      "direction": "in",
      "name": "req",
      "methods": ["get", "post"]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "res"
    }
  ]
}

This file defines the trigger type and how the function is called.

bindings: Lists triggers and outputs.

httpTrigger: Starts function on HTTP request.

authLevel: Controls access (function means a key is needed).

methods: Allowed HTTP methods.

Commands
Create a new Azure Functions app with .NET runtime to start building functions.
Terminal
func init MyFunctionApp --worker-runtime dotnet
Expected OutputExpected
Creating new Azure Functions project in C#... Project created successfully.
→
--worker-runtime - Specifies the runtime language for the function app.
Create a new function with an HTTP trigger that requires a function key for access.
Terminal
func new --name HttpTriggerFunction --template "HTTP trigger" --authlevel function
Expected OutputExpected
Created new function 'HttpTriggerFunction' with HTTP trigger.
→
--template - Specifies the trigger type template.
→
--authlevel - Sets the authorization level for the HTTP trigger.
Start the function app locally to test the trigger and function behavior.
Terminal
func start
Expected OutputExpected
Functions runtime started. Listening on http://localhost:7071 Hit CTRL+C to exit.
Send an HTTP GET request to trigger the HTTP function and see the response.
Terminal
curl http://localhost:7071/api/HttpTriggerFunction?name=Azure
Expected OutputExpected
{"message":"Hello, Azure"}
Key Concept

If you remember nothing else from this pattern, remember: triggers automatically start your function when specific events happen.

Common Mistakes
Using the wrong trigger type for the event you want to respond to.
The function will not start because the trigger does not match the event source.
Choose the trigger type that matches your event, like HTTP for web requests or Timer for scheduled runs.
Not setting the correct authorization level for HTTP triggers.
Your function might be inaccessible or open to everyone unintentionally.
Set authLevel to 'function' or 'anonymous' based on your security needs.
Forgetting to start the function app locally before testing triggers.
You cannot test triggers if the function app is not running.
Always run 'func start' to launch the function app before sending events.
Summary
Initialize an Azure Functions app with the desired runtime.
Create functions with specific triggers like HTTP, Timer, Blob, or Queue.
Start the function app locally to test trigger responses.
Use the correct trigger type and authorization settings for your scenario.

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