Bird
Raised Fist0
Azurecloud~5 mins

Function App creation 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
Creating a Function App lets you run small pieces of code in the cloud without managing servers. It solves the problem of running code that responds to events quickly and scales automatically.
When you want to run code that reacts to changes in data or messages without setting up a server.
When you need to run background tasks like sending emails or processing files automatically.
When you want to build APIs that scale easily without managing infrastructure.
When you want to save costs by paying only for the time your code runs.
When you want to connect different cloud services with simple code triggered by events.
Config File - functionapp.json
functionapp.json
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    {
      "type": "Microsoft.Web/sites",
      "apiVersion": "2022-03-01",
      "name": "example-functionapp",
      "location": "eastus",
      "kind": "functionapp",
      "properties": {
        "serverFarmId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-rg/providers/Microsoft.Web/serverfarms/example-plan",
        "siteConfig": {
          "appSettings": [
            { "name": "FUNCTIONS_EXTENSION_VERSION", "value": "~4" },
            { "name": "FUNCTIONS_WORKER_RUNTIME", "value": "dotnet" }
          ]
        }
      }
    }
  ]
}

This JSON is an Azure Resource Manager template to create a Function App named example-functionapp in the eastus region.

The serverFarmId links to an App Service plan that hosts the Function App.

App settings specify the runtime version and language.

Commands
Create a resource group named example-rg in the eastus region to hold your Function App and related resources.
Terminal
az group create --name example-rg --location eastus
Expected OutputExpected
{ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-rg", "location": "eastus", "managedBy": null, "name": "example-rg", "properties": { "provisioningState": "Succeeded" }, "tags": {}, "type": "Microsoft.Resources/resourceGroups" }
→
--name - Sets the name of the resource group
→
--location - Sets the Azure region for the resource group
Create an App Service plan named example-plan in the example-rg group. This plan hosts the Function App and defines its compute resources.
Terminal
az appservice plan create --name example-plan --resource-group example-rg --sku B1 --is-linux false
Expected OutputExpected
{ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-rg/providers/Microsoft.Web/serverfarms/example-plan", "location": "eastus", "name": "example-plan", "properties": { "status": "Ready", "workerTierName": null }, "sku": { "capacity": 1, "family": "B", "name": "B1", "size": "B1", "tier": "Basic" }, "type": "Microsoft.Web/serverfarms" }
→
--sku - Defines the pricing tier and size of the plan
→
--is-linux - Specifies the OS; false means Windows
Create the Function App named example-functionapp using the storage account examplestorageacct, in the example-rg group, hosted on example-plan, using .NET runtime version 4.
Terminal
az functionapp create --name example-functionapp --storage-account examplestorageacct --resource-group example-rg --plan example-plan --runtime dotnet --functions-version 4
Expected OutputExpected
{ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-rg/providers/Microsoft.Web/sites/example-functionapp", "location": "eastus", "name": "example-functionapp", "state": "Running", "type": "Microsoft.Web/sites" }
→
--storage-account - Specifies the Azure Storage account for the Function App
→
--runtime - Sets the language runtime for the Function App
→
--functions-version - Sets the version of Azure Functions runtime
Check the details and status of the Function App to confirm it was created and is running.
Terminal
az functionapp show --name example-functionapp --resource-group example-rg
Expected OutputExpected
{ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-rg/providers/Microsoft.Web/sites/example-functionapp", "location": "eastus", "name": "example-functionapp", "state": "Running", "type": "Microsoft.Web/sites" }
Key Concept

If you remember nothing else from this pattern, remember: a Function App runs your code in the cloud without servers, triggered by events, and needs a resource group, hosting plan, and storage to work.

Common Mistakes
Not creating a storage account before creating the Function App
Function Apps require a storage account to store code and state; without it, creation fails.
Create an Azure Storage account first using 'az storage account create' and specify it during Function App creation.
Using an App Service plan SKU that does not support Function Apps
Some SKUs do not support running Function Apps or do not scale properly.
Use a supported SKU like B1 (Basic) or Consumption plan for hosting Function Apps.
Forgetting to specify the runtime and functions version
Azure needs to know which runtime and version to use to run your functions correctly.
Always include '--runtime' and '--functions-version' flags when creating the Function App.
Summary
Create a resource group to organize your Azure resources.
Create an App Service plan to host your Function App with defined compute resources.
Create the Function App specifying storage, runtime, and hosting plan.
Verify the Function App is running using the show command.

Practice

(1/5)
1. What is the main purpose of an Azure Function App?
easy
A. To run small pieces of code in the cloud without managing servers
B. To store large amounts of data in the cloud
C. To create virtual machines for hosting websites
D. To manage user identities and access

Solution

  1. Step 1: Understand Azure Function App purpose

    Azure Function Apps are designed to run code triggered by events without needing to manage servers.
  2. Step 2: Compare options

    Options A, B, and D describe other Azure services like virtual machines, storage, and identity management, not Function Apps.
  3. Final Answer:

    To run small pieces of code in the cloud without managing servers -> Option A
  4. Quick Check:

    Function Apps run code serverlessly [OK]
Hint: Function Apps run code without servers [OK]
Common Mistakes:
  • Confusing Function Apps with storage services
  • Thinking Function Apps create virtual machines
  • Mixing up Function Apps with identity services
2. Which Azure CLI command correctly creates a Function App named myfuncapp in resource group mygroup with a storage account mystorage and runtime python?
easy
A. az function create --resource mygroup --name myfuncapp --storage-account mystorage --runtime python
B. az functionapp new --group mygroup --app-name myfuncapp --storage mystorage --runtime python
C. az create functionapp --resource-group mygroup --name myfuncapp --storage mystorage --runtime python
D. az functionapp create --resource-group mygroup --name myfuncapp --storage-account mystorage --runtime python

Solution

  1. Step 1: Identify correct Azure CLI syntax

    The correct command to create a Function App is az functionapp create with parameters --resource-group, --name, --storage-account, and --runtime.
  2. Step 2: Compare options

    az functionapp create --resource-group mygroup --name myfuncapp --storage-account mystorage --runtime python matches the correct syntax. Options B, C, and D use incorrect commands or parameter names.
  3. Final Answer:

    az functionapp create --resource-group mygroup --name myfuncapp --storage-account mystorage --runtime python -> Option D
  4. Quick Check:

    Use az functionapp create with correct flags [OK]
Hint: Use 'az functionapp create' with correct flags [OK]
Common Mistakes:
  • Using wrong command like 'az functionapp new'
  • Mixing parameter names like '--group' instead of '--resource-group'
  • Omitting required parameters
3. What will happen if you run this Azure CLI command?
az functionapp create --resource-group mygroup --name myfuncapp --storage-account mystorage --runtime node --runtime-version 14
medium
A. Fails because --runtime-version is not a valid parameter
B. Creates a Function App named myfuncapp with Node.js runtime version 14
C. Creates a Function App but ignores the runtime version
D. Creates a Function App with default runtime version

Solution

  1. Step 1: Understand parameters in the command

    The command uses --runtime node and specifies --runtime-version 14, which is valid to set Node.js version 14.
  2. Step 2: Check Azure CLI behavior

    Azure CLI supports --runtime-version to specify the runtime version, so the Function App will be created with Node.js 14.
  3. Final Answer:

    Creates a Function App named myfuncapp with Node.js runtime version 14 -> Option B
  4. Quick Check:

    Runtime and version flags create correct environment [OK]
Hint: Use --runtime and --runtime-version to specify environment [OK]
Common Mistakes:
  • Thinking --runtime-version is invalid
  • Assuming runtime version is ignored
  • Confusing runtime with storage account
4. You tried to create a Function App with this command:
az functionapp create --resource-group mygroup --name myfuncapp --storage mystorage --runtime python

But it failed. What is the most likely cause?
medium
A. The parameter --storage is incorrect; it should be --storage-account
B. The runtime python is not supported
C. Resource group mygroup does not exist
D. Function App name myfuncapp is invalid

Solution

  1. Step 1: Check command parameters

    The parameter for storage account must be --storage-account, not --storage.
  2. Step 2: Validate other options

    Python runtime is supported, resource group existence is not confirmed but the error is about parameter, and the name looks valid.
  3. Final Answer:

    The parameter --storage is incorrect; it should be --storage-account -> Option A
  4. Quick Check:

    Use correct parameter names in CLI commands [OK]
Hint: Use --storage-account, not --storage [OK]
Common Mistakes:
  • Using wrong parameter names
  • Assuming runtime unsupported without checking
  • Ignoring error messages about parameters
5. You want to create a Function App that runs Python code triggered every hour. Which two Azure services must you configure together to achieve this?
hard
A. Function App and Azure SQL Database
B. Function App and Azure Blob Storage
C. Function App and Timer Trigger
D. Function App and Azure Virtual Machine

Solution

  1. Step 1: Identify the trigger for scheduled execution

    Azure Function Apps use triggers to start code. For hourly runs, a Timer Trigger is used.
  2. Step 2: Understand service roles

    Blob Storage, Virtual Machines, and SQL Database are not used to schedule function runs but serve other purposes.
  3. Final Answer:

    Function App and Timer Trigger -> Option C
  4. Quick Check:

    Timer Trigger schedules Function App runs [OK]
Hint: Use Timer Trigger for scheduled Function Apps [OK]
Common Mistakes:
  • Confusing storage or database with scheduling
  • Thinking VM is needed for Function Apps
  • Ignoring triggers in Function Apps