Exploring Azure Bicep Functions: Syntax, Usage, and Examples


Hello everyone! We’ve been on an exciting journey exploring Azure Bicep. We’ve seen what it is, and how it compares to ARM templates, set up our environment, dived into its syntax, and explored parameters, resources, variables, outputs, and modules. Today, we’re going to take another step forward. We’ll explore one of the key components of Azure Bicep - Functions. So, let’s get started!

Logging in to Azure

Before we start, let’s ensure we’re logged into Azure. Here’s how you can do it.

  1. Open your terminal or command prompt: You can use any terminal or command prompt that you’re comfortable with.
  2. Log in to Azure: Use the az login command to log in to Azure.
    # Log in to Azure
    az login
  3. Set your subscription: Use the az account set command to set your subscription.
    # Set your subscription
    az account set --subscription "YourSubscriptionName"

Azure Bicep Functions

Functions in Azure Bicep are built-in functions that you can use in your Bicep files. They allow you to perform operations on values, such as string manipulation, mathematical calculations, and resource management tasks.

Here’s an example of a Bicep file that uses a function.

param storageAccountName string = 'mystorageaccount'
var location = 'westus'

resource storageAccount 'Microsoft.Storage/storageAccounts@2021-04-01' = {
  name: storageAccountName
  location: location
  sku: {
    name: 'Standard_LRS'
  kind: 'StorageV2'

output storageAccountConnectionString string = listKeys(storageAccount.id, storageAccount.apiVersion).primaryConnectionString

In this example, the list-keys function is used to retrieve the connection string of the storage account resource. The id and apiVersion properties of the storageAccount resource are passed as parameters to the listKeys function.


Well done! You’ve just learned how to use functions in Azure Bicep. Functions are a powerful feature that allows you to perform operations on values in your Bicep files. In our next session, we’ll explore deployment in Azure Bicep. So, stay tuned and keep learning.