Skip to main content
Version: Early Access

Azure Plugin

The Deploy Azure plugin enables Deploy to work with the Microsoft Azure cloud computing service. You can provision Virtual Machines, Containers, and Deploy functionApp and WebApp from Deploy.

For information about requirements and the configuration items (CIs) that the Azure plugin provides, refer to the Azure Plugin Reference.

important

From version 10.2.0 Azure plugin is compatible with Digital.ai Deploy 10.2.0 or higher version.

Features of the Deploy Azure Plugin

  • Create resource groups and storage accounts
  • Define security groups and associated security rules
  • Setup public IP addresses
  • Define virtual networks (VNet) and their route tables
  • Provision virtual machines associated to their network interface (NIC) and deploy applications to those virtual machines
  • Support Windows Virtual Machines (VMs)
  • Automatically destroy machines during undeployment
  • Leverage the Blob Storage scalable object storage for unstructured data
  • Create web apps with built-in auto-scale and load balancing
  • Create function apps based on an event-driven, serverless compute experience
  • Run containers (ACI) without managing virtual machines
  • Safeguard cryptographic keys and other secrets using Key Vault
  • Configure load balancer (Layer 4 TCP and UDP) to deliver high availability and network performance to your applications
  • Deploy network configurations such as virtual networks (VNets), subnets, routing tables, network interfaces, and public IP addresses
  • Deploy load balancing configurations such as load balancers and availability sets
  • Deploy storage configurations such as storage accounts and blob containers
  • Deploy content to blob containers
  • Deploy security configurations such as security groups and associate security roles with them
  • Configure app service plans and deploy web apps and web jobs
  • Deploy functions to Azure Functions
  • Deploy container groups and containers to Azure Container Instance
  • Create artifact feeds and upload packages to the created feeds

This is a diagram representing all the resource types Deploy Azure plugin supports and their dependencies:

Azure types diagram

Before you Get Started

Before you begin using the Azure plugin you must have:

Make sure your Azure account is correctly configured, with the following elements:

  • Subscription ID
  • Service principal
  • Tenant ID
  • Client ID
  • Client secret value

Minimum Required Versions

You must have these versions of the specified tools to work properly.

Digital.ai Deploy: Version 22.3.0 or later.

Information Required

  • Subscription ID
  • Client ID
  • Client secret
  • Tenant ID
  • Resource group to create
  • An Azure region to create the resource group (e.g. westus)
  • Name of the Azure app. This will also be used as the name of the Release and Deploy CIs.
  • Username and password for the admin account.

Set up an Azure Cloud Connection

To set up a connection to Azure Cloud:

  1. In the side navigation bar, click Explorer.
  2. Hover over Infrastructure, click Explorer action menu, and select New > Azure > Cloud. Azure Cloud CI Azure Cloud CI
  3. Enter the subscription id (which you will found in Azure portal under subscriptions) in the Subscription ID field.
  4. Enter the user name in the User Name field.
  5. Enter the user password in the User Password field.
  6. Click Save or Save and close.

Verify the Azure Cloud Connectivity

To verify the connection with the azure.Cloud, do the following steps:

  1. In the side navigation bar, click Explorer.
  2. Expand the Infrastructure, hover over the newly created infrastructure and click Explorer action menu, and select Check Connection.

Azure check connection

Execute the task. If the task succeeds, the connectivity is working fine and we are able to use Azure through Digital.ai Deploy.

Azure connection status

important

This topic describes using a CI tool plugin to interact with Deploy. However, as a preferred alternative starting with version 9.0, you can utilize a wrapper script to bootstrap XL CLI commands on your Unix or Windows-based Continuous Integration (CI) servers without having to install the XL CLI executable itself. The script is stored with your project YAML files and you can execute XL CLI commands from within your CI tool scripts. For details, see the following topics:

Cloud Service Spec

To create a cloud service spec, do the following steps:

  1. In the side navigation bar, click Explorer.
  2. Hover over Applications, click , then select New > Application. A new tab displays.
  3. Enter the name in the Name field.
  4. Click Save and close.
  5. Click Context menu on the newly created then select New > Provisioning Package
  6. Enter the name in the Name field.
  7. Click Save and close.

Before creating Cloud Service create the following:

Set up a Virtual Network

To set up a virtual network, do the following steps:

  1. In the side navigation bar, click Explorer.
  2. Under the Application, expand the newly created application.
  3. On the newly created package, click Context menu then select New > azure > VirtualNetworkSpec. A new tab displays.
  4. Specify the required properties under the VirtualNetworkSpec. Virtual Network Settings
  5. Click Save and close.

Set up a Storage account

To set up a storage account, do the following steps:

  1. In the side navigation bar, click Explorer.
  2. Under the Application, expand the newly created application.
  3. On the newly created package, click Context menu then select New > azure > StorageAccountSpec. A new tab displays.
  4. Specify the required properties under the StorageAccountSpec. Create Storage account
  5. Click Save and close.

Create a blob container inside the storage account

To create a blob container, do the following steps:

  1. On the newly created package, click Context menu then select New > azure > blob > ContainerSpec. A new tab displays. Create Blob Container
  2. Specify the required properties under the StorageAccountSpec. Create Blob Container
  3. Verify the newly created storage account and the blob container on the azure portal.
  4. Upload the required files (.cspkg, .csdef, and, .cscfg) in the newly created container by clicking Upload button from the Azure portal. Upload Files to Blob Note: To generate the package (.cspkg) file, Refer Create an Azure cloud service project and after making required changes in ServiceDefinition.csdef and ServiceConfig.cscfg files, run the application and then package it. See Package of Azure Cloud Service model for more information.
  5. Click on .cspkg file and then click on Generate SAS.
  6. Select HTTPS and HTTP in Allowed protocal.
  7. Copy the Blob SAS URL and paste it in the required fields of cloudservicespec. Blob SAS url

Create a Public IP address

To create a public IP address, do the following steps:

  1. In the side navigation bar, click Explorer.
  2. Under the Application, expand the newly created application.
  3. On the newly created package, click Context menu then select New > azure > PublicIpAdressSpec. A new tab displays. Create Public IP address
  4. Specify the required properties under the StorageAccountSpec. Create Public IP address

Create Cloud Service Spec

To create cloud service spec, do the following steps:

  1. In the side navigation bar, click Explorer.
  2. Under the Application, expand the newly created application.
  3. On the newly created package, click Context menu then select New > azure > CloudServiceSpec. A new tab displays. Create Cloud Service Spec
  4. Specify the required properties including virtual network, storage account, and public ip address under the CloudServiceSpec. Create Cloud Service Spec

Deploy the Cloud Service Spec

Deploy the CloudServiceSpec file from the Applications. After successful deployment of CloudServiceSpec on Digital.ai Deploy, verify the same on Azure portal.

Deploy the Cloud Service Spec-1

Deploy the Cloud Service Spec-2

Azure Blueprints

The Azure blueprints allow you to define deployments and releases in YAML templates, simplifying the process of provisioning resources with the Azure plugin. Azure Resource Manager (ARM) templates can also be used to easily define the Azure resource deployments. For more information, see Deploy to Azure with using the ARM template blueprint

The available Azure blueprints are:

For more information on the blueprints, see Deploy/Release Blueprints. This tutorial will help you to for deploy resources to Azure using ARM templates: Deploy to Azure with using the ARM template blueprint.

Azure WebApp

The Deploy Azure WebApp provides a host service to create and deploy web apps. To create Webapp on your Azure environment, you can configure the Azure WebApp Tags.

You can also configure the following using Deploy:

Azure WebApp Tags

This section describes how to configure Azure WebApp tags using Deploy.

Prerequisites

Before you create Azure WebApp tags, you must have the following:

  • Azure Cloud Infrastructure configured with a valid resource group
  • Environment CI that points to the Azure resource group configured
  • Webapptag and app service plan packages created or imported into the Deploy server
  • Webapp configured with the required apps service plan in your resource group

Step 1 – Create the asp service app on Azure portal

Configure the asp service plan on your Azure environment.

Configure ASP Service Plan

After the deployment is successful, the serviceapp is displayed in the Azure portal.

Step 2 – Create the webapptag on Azure portal

Configure the webapptag 1.0.0 package on your Azure environment.

Create WebApp Tag

After the deployment is successful, the webapp tags are displayed in the Azure portal.

Step 3 – Update the webapptag Deployment

Update the webatpptag deployment to version 2.0.0.

Update WebApp Tag

After the update is successful, the new tags are displayed in the Azure portal.

To undeploy the webapp tag, do the following:

  1. From Environments, click azure > webapptag 2.0.0 and perform a rollback to the earlier deployment version. After the rollback is successful, the original tags from webapptag 1.0.0 are displayed in the Azure portal.
  2. Right-click webapptag 2.0.0 and click Undeploy to remove webapp from Azure portal.

Azure WebApp Slots

This section describes how to configure Azure WebApp slots using Deploy.

Step 1 – Perform the deployment of web app slot on Azure portal

Deploy the webappslot app on your Azure environment.

Deploy Webappslot

After the deployment is successful, verify the new deployment slot in the Azure portal.

Azure WebApp Logging

This section describes how to configure Azure logging using Deploy.

Step 1 – Ensure the serviceapp and webapptag are deployed successfully

See Azure WebApp Tags steps 1 and 2.

Step 2 – Perform the deployment of webapplogging on Azure portal

Configure the webapplogging 1.0.0 package on your Azure environment.

Deploy Webapplogging

After the deployment is successful, the App Service Logs settings are updated in the Azure portal.

Step 3 – Update the webapplogging Deployment

Update the webapplogging deployment to version 2.0.0.

Update WebApp Logging

After the update is successful, the App Service Logs settings are updated in the Azure portal.

Azure WebApp Extensions

This section describes how to configure WebApp Extensions using Deploy.

Step 1 – Ensure the serviceapp and webapptag are deployed successfully

See Azure WebApp Tags steps 1 and 2.

Step 2 – Perform the deployment of webappextension on Azure portal

Configure the webappextension 1.0.0 package on your Azure environment.

Deploy webappextension

After the deployment is successful, the .NET Raygun APM extension for the web app is displayed in the Azure portal.

Step 3 – Update the webappextension Deployment

Update the webappextension deployment to version 2.0.0.

Update WebApp Logging

After the update is successful, the extensions for the web app are removed from the Azure portal.

Azure WebAppCodeSpec Deployment

This section describes how to configure Azure WebAppCodeSpec deployment using Deploy.

  1. Go to Application, click Deployment Slot, and select New > azure > WebAppCodeSpec.
  2. In the Name field, enter the name of the configuration item.
  3. Select the code package to be deployed.
  4. Specify the name of the Webapp to which the code has to be deployed.
  5. Specify the other optional parameters such as the artifact type and target path.
note

You can now specify the deployment slots for deploying the webapp code.

  1. Click Save or Save and close.

Use the configured WebAppCodeSpec configuration item in your deployment process to deploy the code to the Azure Web App.

Azure FunctionApp

The Deploy Azure FunctionApp provides functionality in Digital.ai Deploy to create and deploy FunctionApp in specified Resource Group.

Prerequisites

Before you create Azure FunctionApp, you must have the following:

  • Azure Cloud Infrastructure configured with a valid resource group
  • Environment CI that points to the Azure resource group configured

Azure FunctionApp Using an Image

This section describes how to configure Azure FunctionApp using image stored in a repository.

Step 1 – Configure the required Prerequisites.

Step 2 – Fill the required fields in the azure.FunctionAppImage configuration item.

Deploy FunctionApp Image - Fields

Step 3 – Deploy the Configuration Item to the Deployable.

Deploy the FunctionApp on your Azure environment.

Deploy FunctionApp Image - Deployment

Azure FunctionApp Using a Zip file

This section describes how to configure Azure FunctionApp using zip file as artifact.

Step 1 – Configure the required Prerequisites.

Step 2 – Fill the required fields in the azure.FunctionAppZip configuration item.

Deploy FunctionApp zip - Fields

Step 3 – Deploy the Configuration Item to the Deployable.

Deploy the FunctionApp on your Azure environment.

Deploy FunctionApp Image - Deployment

Verify the created Azure FunctionApp in Azure portal

After the deployment is successful, verify the newly created FunctionApp in the Azure portal.

Deploy FunctionApp - Verification

Azure FunctionAppCodeSpec Deployment

  1. Go to Application, click Deployment Slot, and select New > azure > FunctionAppCodeSpec.
  2. In the Name field, enter the name of the configuration item.
  3. Speficy the URL and credentials of the repository to pull the Webapp content from.
  4. Provide other configuration item as needed.
note

For the field Service Plan Name, Location, and Hosting Plan, check Azure App Service plan.

  1. Click Save or Save and close.

Use the configured FunctionAppCodeSpec configuration item in your deployment process to deploy the code to the Azure Web App.

Azure StaticWebAppSpec deployment

  1. Go to Application, click Deployment Slot, and select New > azure > StaticWebAppSpec.
  2. In the Name field, enter the name of the configuration item.
  3. Provide other configuration item as needed.
note

For the field Service Plan Name, Location, and Hosting Plan, check Azure App Service Plan.

StaticWebAppSpec 4. Click Save or Save and close.

Use the configured StaticWebAppSpec configuration item in your deployment process to deploy the code to the Azure Web App.

Integration with ContainerAppSpec

  1. Go to Application, click Deployment Slot, and select New > azure > ContainerAppSpec.
  2. In the Name filed, enter the name of the container application.
  3. Specify configurations for DAPR, Ingress, and CORS and Template Revision as needed. For more information, refer to Container Apps - Create Or Update ContainerAppSpec ContainerAppSpec ContainerAppSpec
  4. Click Save or Save and Close.
  5. From the containerapp created, select New > azure and select from the list to add Containers, Init Containers, Volumes, and Service binds as needed.

Integration with WebAppContainer

Prerequisites: You must create a App service plan in Azure.

  1. Go to Application, click Deployment Slot, and select New > azure > WebAppContainerSpec.
  2. In the Name filed, enter the name of the WebAppContainer.
  3. Specify the image and registry details. ContainerWebApp
  4. Provide other additional configuration item as needed.
  5. Click Save or Save and Close.

Use the configured ContainerWebApp configuration item in your deployment process to deploy the web app.

Azure Create Container Group in Azure Resource Group with Instance spec

The Deploy Azure ContainerGroupSpec and ContainerInstanceSpec provides functionality in Digital.ai Deploy to create and deploy Container with an image in Azure Container Instances under a resource group.

Prerequisites

Before you create Azure Container, you must have the following:

  • Azure Cloud Infrastructure configured with a valid resource group
  • Environment CI that points to the Azure resource group configured

Azure ContainerGroupSpec to create Container Group

This section describes how to configure Azure ContainerGroupSpec.

Step 1 – Configure the required Prerequisites.

Step 2 – Fill the required fields in the azure.ContainerGroupSpec configuration item.

Deploy Azure Container Group spec - Fields

Step 3 – Hover over created azure.ContainerGroupSpec configuration item, click Deployment Slot, and select New > Azure > ContainerInstanceSpec.

Step 4 – Fill the required fields in the azure.ContainerInstanceSpec configuration item.

Deploy Azure Container Instance spec - Fields

Step 5 – Deploy the Configuration Item to the Deployable.

Deploy Azure Container Group Deployment

Step 6 – Verify the Newly Created Container Group in Azure Portal.

Step 7 – Update the webapptag Deployment.

Azure Create Resources in Azure Resource Group using Bicep Template

The Deploy Azure Bicep deployment provides functionality in Digital.ai Deploy to deploy Bicep template resources under a resource group.

Prerequisites

Before you create Azure Container, you must have the following:

  • Azure Cloud Infrastructure configured.
  • Environment CI that points to the Azure Cloud configured.

Azure ContainerGroupSpec to create Container Group

This section describes how to configure Azure Bicep template configuration Item.

Step 1 – Configure the required Prerequisites.

Step 2 – Fill the required fields in the azure.bicep.Template configuration item.

Deploy Azure Bicep Template- Fields

note
tip
  • You can create bicep templates that can be scoped against a ResoucreGroup or a Subscription. Deploy Azure Bicep Template- Fields

  • You can upload zip folders that consists of collection of templates. Deploy Azure Bicep Template- Fields

  • Input Variables can be added in the Input Variables field. For Object Type send a Dict String {'tag1': 'value1'} Deploy Azure Bicep Template- Input Variables

Step 3 – Deploy the Configuration Item to the Deployable.

Deploy Azure Bicep Deployment

Step 4 – Verify the Newly Created resources in Azure Portal.

Deploy Azure Bicep Deployment Resources