What's up Azure Developer CLI in October?
Tags: azure, cli, azd
Published: 2022-10-31 11:55:07

## Introduction

The team around the *Azure Developer CLI* is going full steam ahead with enhancing and improving the developer experience (and of course fixing bugs). What I really like are the small improvements based on the learnings that come along the usage in real life and the corresponding feedback - this is how the flow should be.

Let's dive into what came around in the last month as there are some things you might have missed.

## Azure Developer CLI 0.3.0-beta.X

The focus of this blog post is on the release [0.3.0-beta.1](https://github.com/Azure/azure-dev/releases/tag/azure-dev-cli_0.3.0-beta.1) to [0.3.0-beta.5](https://github.com/Azure/azure-dev/releases/tag/azure-dev-cli_0.3.0-beta.5) (which is the latest when writing this post).

The most prominent a probably most awaited new feature of the Azure Developer CLI (besides AKS support) is the support of *Azure DevOps* in the `pipeline config` command. Here you go: release [0.3.0-beta.1](https://github.com/Azure/azure-dev/releases/tag/azure-dev-cli_0.3.0-beta.1) introduced the support of *Azure DevOps*. This is also reflected in the documentation which now comprises this new option in the section ["Configuring deplyoment pipeline"](https://learn.microsoft.com/azure/developer/azure-developer-cli/configure-devops-pipeline?tabs=azdo) of the How-to guides.

While the `beta.x` releases for one minor release (here 0.3.0) mainly contain bug fixes, they often also come with improvements that you might miss, but that are hidden gems improving the usability of the CLI. The following sections put a spotlight on these hidden gems. 

### Purge of app configuration stores

Deleting your provisioning with `azd down` was improved by supporting the *purging of app configuration stores*. This is supported since [0.3.0-beta.3](https://github.com/Azure/azure-dev/releases/tag/azure-dev-cli_0.3.0-beta.3). An important improvement in case you want to recreate an App Configuration store with the same name as a deleted store. For details around purging and soft-delete, see Microsoft Learn [Azure App Configuration - Soft delete](https://learn.microsoft.com/azure/azure-app-configuration/concept-soft-delete).

### Rearrangement and simplification of infrastructure templates

The Azure Developer CLI supports Infrastructure as Code via Terraform and Bicep templates. Finding a "perfect" setup for these files is hard and I guess will be one of the main subjects of adjustments due to learnings and gathering experience over the upcoming months. As I said in the beginning, I like that the learning is taken seriously and is reflected in the improvements that we see.

Release [0.3.0-beta.3](https://github.com/Azure/azure-dev/releases/tag/azure-dev-cli_0.3.0-beta.3) came with another round of improvements for the Terraform templates as well as simplifying the Bicep template structure. 

For those of you who use the Azure Developer CLI with Terraform, there have been some changes concerning the extraction of common terraform resources into reusable modules with [PR 691](https://github.com/Azure/azure-dev/pull/691/files). You can also check these out by creating a new app with one of the `azd` templates, as the changes are reflected in there, too.

For those of you using Bicep, the templates of the `core folder` were simplified which is also reflected in the related sample apps. This sounds nice and is worth a closer look. 

The simplification comprises the structure of the `database` folder and the structure and content of the `host` folder.

The `database` folder in older releases contained all files in the root directory:

![azd db folder - old version](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gwvtgya4r7ftyr1n5mb6.png)

The new version has a clearer structure grouping the templates by database and in case of Cosmos DB grouped by the DB interface:

![azd db folder - new version](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yadorcql410zc9fi725s.png)

This makes searching for a fitting template easier and improves the navigation in the folders.

The second (imho big) improvement happened in the `host` directory which was quite busy up to now:

![azd host folder - old version](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bcww80xhiy93mf5zmzxn.png)

The new version looks like this:

![azd host folder - new version](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yc3afb8jc3z5hdujlj2a.png)

It is obvious that the number of files has been reduced by removing the language dependant Bicep templates for the App Service as well as for the Azure Functions. 

While at a first glance it was a reasonable cut to have dedicated templates for the different supported languages, it was at least for me a bit too much magic going on, so I anyway had to dive into the `functions.bicep` template to know what is going on. From my perspective this is a good move which as a side effect makes the new templates for Azure Functions and the App Service more intuitive to use. Here an example of the new Azure Functions template i.e., the parameters section of the template:

![azd Azure Functions Bicep template - new version](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/itzy6ca30acx8gzncnkq.png)

I find this new approach much more intuitive than in the prior releases. The analog improvement is implemented in the `appservice.bicep` template.

In addition, the `container-app.bicep` file now has two more parameters available:

![azd Container App template - new parameters](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bj0hqzasod065uon3qp2.png)

As mentioned before: small announcement but a good move forward in the infrastructure area of the Azure Developer CLI.

## Heads up - more to come

Looking at the open pull request in the repository (or to be honest to be pointed to it 😉) there is more good stuff waiting in the queue (see [PR 996](https://github.com/Azure/azure-dev/pull/996)) that will improve the handling of the infrastructure with the Azure Developer CLI even further.

## Keep it coming

Looking forward to seeing more improvements and features coming with Azure Developer CLI and eagerly waiting for the [PR 996](https://github.com/Azure/azure-dev/pull/996) to get merged, so that I can rearrange my sample application. 

Kudos to the Azure Developer CLI team and keep us busy with new features and improvements 😊