Introducing the Azure Developer CLI (azd): A faster way to build apps for the cloud

Savannah Ostrowski

Today, we’re excited to announce the public preview of the Azure Developer CLI (azd) —a new, open-source tool that accelerates the time it takes to get started on Azure. The Azure Developer CLI provides developer-friendly commands that map to key stages in your workflow: code, build, deploy, monitor, repeat. To create, provision, and deploy a new application in one step, it’s as easy as:

azd up --template todo-nodejs-mongo

You can use the Azure Developer CLI with extensible templates that include everything you need to get an application up and running in Azure. The templates include best practices, application code and reusable infrastructure as code assets.

The new Azure Developer CLI builds upon the experience and foundations of the Azure CLI. You can use both tools together, as needed, to support your Azure workflow.

For a quick intro to the Azure Developer CLI, be sure to check out our Developer Hub!

A tool to help developers write code for the cloud

As a developer, you need to make many decisions when it comes to building, deploying, and securing your application. Some questions you might ask are:

  • Which cloud services should I use with my code?
  • Which libraries do I need to use?
  • How should I set up my local development environment?
  • How do I provision the necessary infrastructure for my application?
  • How do I know that what I’m doing incorporates security best practices?

The Azure Developer CLI helps you answer these questions. It provides you with a clear path for building your application in the cloud.

With the Azure Developer CLI, a typical developer workflow looks like this:

  1. azd init: Create an application and initialize an environment using a sample template in your preferred language.
  2. azd provision: Provision the necessary resources for your application on Azure.
  3. azd deploy: Deploy your application to Azure.
  4. azd monitor: Monitor your application’s behavior and performance and validate deployments.
  5. azd pipeline config: Create and manage CI/CD (continuous integration and continuous delivery).

Better yet, you can also use azd up to create, provision, and deploy a new application in one step! For a list of supported commands, see the Developer CLI reference docs. Alternatively, run azd –h from your preferred terminal after installation. If you no longer want or need the resources you’ve created, you can run azd down.

Whether you’re working in the terminal, your editor or IDE (like Visual Studio Code or Visual Studio), or your GitHub Actions pipeline, Azure Developer CLI commands remain consistent regardless of the context. There’s no magic or behind-the-scenes work being done here!

Application templates for Python, JavaScript/TypeScript, and C#

The Azure Developer CLI uses idiomatic application templates that extend beyond “Hello World!” to include the scaffolding for monitoring and CI/CD for your application.

Each template includes application code, an /infra directory containing all the infra-as-code files (written in Bicep) needed to provision the Azure resources, and an azure.yaml file that describes your application. These templates are extensible and customizable to your specific use case.

For our first preview, we’ve authored an initial set of template applications written in Python, JavaScript/TypeScript, and C# and for hosts such as Azure App Service, Azure Container Apps, and Azure Static Web Apps + Function Apps. Check out our growing list of templates.

For information on authoring your own template or “templatizing” an existing application, see our Developer Hub.

Get started with the Azure Developer CLI

Installation Instructions

Once you’ve installed the prerequisites, install the standalone Azure Developer CLI via the following command in your preferred terminal.

Windows

powershell -ex AllSigned -c "Invoke-RestMethod 'https://aka.ms/install-azd.ps1' | Invoke-Expression"

macOS/Linux

curl -fsSL https://aka.ms/install-azd.sh | bash

Editor and IDE Support

Visual Studio Code

As of today, you can also access preview Azure Developer CLI functionality from within both Visual Studio Code and Visual Studio. You can try out our Visual Studio Code extension by installing it from the Visual Studio Code Marketplace. From the VS Code extension, you can use all the Azure Developer CLI commands.

Visual Studio

In Visual Studio 2022 17.3 Preview 2 or later, you can enable the CLI by flipping the Integration with azd, the Azure Developer CLI preview feature flag (Tools > Options > Environment > Preview Features > Integration with azd, the Azure Developer CLI). Enabling this flag will enable Visual Studio to detect the presence of a solution that was created with the Azure Developer CLI in the terminal.

What’s next for the Azure Developer CLI?

During public preview, we want to hear from you and learn how we can continue to improve the developer experience of building on Azure. We’re also currently prioritizing adding support for the following based on feedback that we’ve received during our private preview:

  • Java language templates
  • Azure Kubernetes Service templates
  • Azure Pipelines support
  • Terraform support

Feedback + Contributions

Contributing to the CLI

The Developer CLI is an open-source, MIT-licensed product! Our team is excited to collaborate with all of you and intends for the Azure Developer CLI to be community-driven. We welcome contributions to the core Developer CLI codebase and in the form of templates. Our team encourages you to file issues, open pull requests, contribute to discussions and more via our GitHub repository.

Authoring Templates

Our team has created templates for some key Python, JavaScript/TypeScript, and C#. We also plan to author more in the future to cover even more developer scenarios. If you author your own templates, you can add the azd-templates tag to your repository on GitHub. That way, other developers can find, fork, and build upon your template for their own use case. You can also open an issue on our GitHub repository if there’s a use case and template that you would like to see created.

4 comments

Discussion is closed. Login to edit/delete existing comments.

  • Josiah Laivins 0

    This looks cool, but I fail to see how this is better than Azure CLI. It would be nice to see side by side examples of how this makes things better?

    Also is this easier to install than Azure CLI? Because that was one issue that I currently have is the installation seems a little heavy, so a docker image installing this tends to feel bloated.

    • Savannah OstrowskiMicrosoft employee 0

      Hey Josiah – thanks for the feedback. The Azure Developer CLI is intended to be complementary to the Azure CLI. With the Azure Developer CLI, we keep the commands you use high-level and mapped to stages your development workflow. By keeping things high-level some of the nitty gritty control plane management pieces get abstracted away so that you can focus on writing code. If you want to do more fine-tuned management of Azure resources, your best bet is the Azure CLI.

      That being said, this is good feedback as I think there’s some additional clarity needed around what CLI is best for which use case.

      To answer your last question, the Azure Developer CLI is lightweight and very quick to install. If you have any issues with installation, please do file an issue on our repo so we can investigate – https://github.com/Azure/azure-dev.

  • Alexandre Nedelec 0

    It looks great 👍. It will definitely help teams to get started on their Azure projects and adopt best practices from the beginning ❤️. I hope you also have plans to support Pulumi. It would be great if you could not only scaffold the application template in our preferred language but also generate the infrastructure code in our preferred language (using Pulumi). IaC is not only about Bicep or Terraform.

    • Savannah OstrowskiMicrosoft employee 1

      Thanks so much, Alexandre! We’re continuously shaping our roadmap so I appreciate this feedback. I’ve created an issue on our repository to track this request and so that others can also upvote it – https://github.com/Azure/azure-dev/issues/93. Feel free to add additional details or upvote so we can prioritize!

Feedback usabilla icon