# Bicep
Domain-specific language (DSL) for Infrastructure as Code, using declarative syntax to deploy Azure resources in a consistent manner.
See the [What is Bicep?] page for more information.
The Azure CLI can use a command group (`az bicep …`) to integrate with the `bicep` utility.
## Table of contents
1. [TL;DR](#tldr)
1. [Utility management](#utility-management)
1. [Installation](#installation)
1. [Upgrade](#upgrade)
1. [Further readings](#further-readings)
## TL;DR
```sh
# Install the `bicep` utility.
# Includes the utility inside the local Azure CLI installation's path.
az bicep install
az bicep install -v 'v0.2.212' -t 'linux-arm64'
# The CLI defaults to the included installation.
# External instances of the `bicep` utility *can* be used *if* the CLI is
# configured to do so.
brew install azure/bicep/bicep && \
az config set bicep.use_binary_from_path=True
# Upgrade `bicep` from the CLI.
az bicep upgrade
az bicep upgrade -t 'linux-x64'
# Validate a bicep template to create a Deployment Group.
# Leverages the `bicep` utility.
az deployment group validate \
-n 'deployment_group_name' -g 'resource_group_name' \
-f 'template.bicep' -p 'parameter1=value' parameter2="value"
```
## Utility management
### Installation
The simplest way to install the `bicep` utility is to use the CLI:
```sh
az bicep install
az bicep install -v 'v0.2.212' -t 'linux-arm64'
```
When doing so, the CLI downloads the utility inside its path.
When using a proxy (like in companies forcing connections through it), the certificate check might fail.
If this is the case, or when needed, `bicep` **can** be installed externally and used by the CLI, **if** the CLI is configured to use it with the following setting:
```sh
az config set bicep.use_binary_from_path=True
```
### Upgrade
Bicep will by default check for upgrades when run.
To avoid this, the CLI needs to be configured to as follows:
```sh
az config set bicep.version_check=False
```
When `bicep` is installed through the CLI, it can be updated from it too:
```sh
az bicep upgrade
az bicep upgrade -t 'linux-x64'
```
## Further readings
- [What is Bicep?]
- The [`az bicep` command reference][az bicep]
- The [Azure CLI]
[az bicep]: https://learn.microsoft.com/en-us/cli/azure/bicep
[what is bicep?]: https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/overview
[azure cli]: cli.md