As an optional method for deploying our application resources to Azure, this pull request introduces support for the Azure Developer CLI (AZD) deployment model. The addition of AZD as a deployment option is aimed at streamlining and simplifying the process of building, deploying, and managing Azure resources, particularly for developers who prefer working with command-line tools.
Infrastructure setup and deployment improvements:
infra/README.md: Added a table of contents and instructions for setting up the local environment, provisioning infrastructure, deploying from scratch, deploying with existing Azure resources, and troubleshooting.
infra/scripts/CreateAppRegistration.ps1: Added a script for creating an Azure AD application, retrieving application ID and generating secret key, and setting environment variables.
infra/scripts/UpdateSecretsInApps.ps1: Added a script for retrieving the secret key for the Azure Bot Service, generating a SAS token for accessing the Blob Storage container, updating app settings of Azure App Services, and creating a service principal for GitHub action deployment.
azuredeploy.bicep: Added output variables to retrieve connection strings and endpoint URLs for different services.
infra/scripts/loadenv.ps1: Added a section to the script for loading the .env file, setting environment variables, and checking for Python and installing required dependencies.
azure.yaml: Added a new file describing the application setup, including pre and post-provisioning hooks and configurations for different services.
infra/main.bicep: Updated the file to include new resource group and virtual network configurations. (Changes in commit 1234567)
Motivation and Context:
With AZD's growing popularity and its focus on developer experience, integrating AZD as a deployment option aligns with our goal of providing flexible and developer-friendly methods for managing Azure resources.
AZD simplifies complex deployment scripts and makes it easier to replicate environments, which is beneficial for new developers and creating test environments.
This change offers an alternative to developers who prefer Azure CLI tools and declarative infrastructure management.
How Has This Been Tested?
Rigorous testing is conducted in a separate development environment to ensure seamless AZD deployment alongside existing models. Verification of resource deployment is done through automated testing and manual inspection in Azure.
Impact:
There is no impact on the current deployment process. AZD is an additional option and does not replace any existing methods. Developers can choose to use AZD or continue with current deployment processes.
As an optional method for deploying our application resources to Azure, this pull request introduces support for the Azure Developer CLI (AZD) deployment model. The addition of AZD as a deployment option is aimed at streamlining and simplifying the process of building, deploying, and managing Azure resources, particularly for developers who prefer working with command-line tools.
Infrastructure setup and deployment improvements:
infra/README.md
: Added a table of contents and instructions for setting up the local environment, provisioning infrastructure, deploying from scratch, deploying with existing Azure resources, and troubleshooting.infra/core/ai/cognitiveservices.bicep
: Added a new resource definition for creating an Azure Cognitive Services instance.infra/scripts/CreateAppRegistration.ps1
: Added a script for creating an Azure AD application, retrieving application ID and generating secret key, and setting environment variables.infra/scripts/UpdateSecretsInApps.ps1
: Added a script for retrieving the secret key for the Azure Bot Service, generating a SAS token for accessing the Blob Storage container, updating app settings of Azure App Services, and creating a service principal for GitHub action deployment.infra/scripts/CreatePrerequisites.ps1
: Added a script for creating the necessary target directories for infrastructure deployment.apps/backend/azuredeploy-backend.bicep
: Added output variables to retrieve names and URLs of created resources, and added a new tag for identifying the backend service. [1] [2]apps/frontend/azuredeploy-frontend.bicep
: Added output variables to retrieve the URL and name of the web app, and added a new tag for identifying the frontend service. [1] [2]azuredeploy.bicep
: Added output variables to retrieve connection strings and endpoint URLs for different services.infra/scripts/loadenv.ps1
: Added a section to the script for loading the.env
file, setting environment variables, and checking for Python and installing required dependencies.infra/main.parameters.json
: Added a file containing deployment parameters for the project.azure.yaml
: Added a new file describing the application setup, including pre and post-provisioning hooks and configurations for different services.infra/main.bicep
: Updated the file to include new resource group and virtual network configurations. (Changes in commit 1234567)Motivation and Context:
This change offers an alternative to developers who prefer Azure CLI tools and declarative infrastructure management.
How Has This Been Tested? Rigorous testing is conducted in a separate development environment to ensure seamless AZD deployment alongside existing models. Verification of resource deployment is done through automated testing and manual inspection in Azure.
Impact: There is no impact on the current deployment process. AZD is an additional option and does not replace any existing methods. Developers can choose to use AZD or continue with current deployment processes.