You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
By default this template will use the environment name as the prefix to prevent naming collisions within Azure. The parameters below show the default values. You only need to run the statements below if you need to change the values.
4
+
5
+
> To override any of the parameters, run `azd env set <PARAMETER_NAME> <VALUE>` before running `azd up`. On the first azd command, it will prompt you for the environment name. Be sure to choose 3-20 characters alphanumeric unique name.
|`AZURE_ENV_EMBEDDING_MODEL_CAPACITY`| string | Configure capacity for embedding models (in thousands). | Set the capacity for embedding models (in thousands). |
20
+
|`AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID`| string | Guide to get your [Existing Workspace ID](/docs/re-use-log-analytics.md)| Set this if you want to reuse an existing Log Analytics Workspace instead of creating a new one. |
21
+
|`AZURE_ENV_VM_ADMIN_USERNAME`| string |`take(newGuid(), 20)`| The administrator username for the virtual machine. |
22
+
|`AZURE_ENV_VM_ADMIN_PASSWORD`| string |`newGuid()`| The administrator password for the virtual machine. |
23
+
|`AZURE_ENV_ENABLE_TELEMETRY`| bool |`true`| Enables telemetry for monitoring and diagnostics. |
24
+
---
25
+
26
+
## How to Set a Parameter
27
+
28
+
To customize any of the above values, run the following command **before**`azd up`:
29
+
30
+
```bash
31
+
azd env set<PARAMETER_NAME><VALUE>
32
+
```
33
+
34
+
Set the Log Analytics Workspace Id if you need to reuse the existing workspace which is already existing
35
+
```shell
36
+
azd env set AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID '/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.OperationalInsights/workspaces/<workspace-name>'
*Due to model availability within various data center regions, the following services have been hard-coded to specific regions.*
49
+
The [`infra`](../infra) folder of the Multi Agent Solution Accelerator contains the [`main.bicep`](../infra/main.bicep) Bicep script, which defines all Azure infrastructure components for this solution.
49
50
50
-
***Azure Open AI (GPT 4o mini):**<br>
51
-
The solution relies on `GPT-4o mini` and `text-embedding-3-large` models which are all currently available in the 'WestUS3', 'EastUS', 'EastUS2', 'SwedenCentral' region.
52
-
Please check the
53
-
[model summary table and region availability](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models#embeddings) if needed.
51
+
By default, the `azd up` command uses the [`main.parameters.json`](../infra/main.parameters.json) file to deploy the solution. This file is pre-configured for a **sandbox environment** — ideal for development and proof-of-concept scenarios, with minimal security and cost controls for rapid iteration.
54
52
55
-
***Azure AI Document Intelligence (East US):**<br>
56
-
The solution relies on a `2023-10-31-preview` or later that is currently available in `East US` region.
57
-
The deployment region for this model is fixed in 'East US'
53
+
For **production deployments**, the repository also provides [`main.waf.parameters.json`](../infra/main.waf.parameters.json), which applies a [Well-Architected Framework (WAF) aligned](https://learn.microsoft.com/en-us/azure/well-architected/) configuration. This option enables additional Azure best practices for reliability, security, cost optimization, operational excellence, and performance efficiency, such as:
58
54
55
+
- Enhanced network security (e.g., Network protection with private endpoints)
56
+
- Stricter access controls and managed identities
57
+
- Logging, monitoring, and diagnostics enabled by default
58
+
- Resource tagging and cost management recommendations
59
59
60
-
## Deployment
60
+
**How to choose your deployment configuration:**
61
61
62
-
The automated deployment process is very straightforward and simplified via a single [deployment script](../Deployment/resourcedeployment.ps1) that completes in approximately 10-15 minutes:
62
+
* Use the default `main.parameters.json` file for a **sandbox/dev environment**
63
+
* For a **WAF-aligned, production-ready deployment**, copy the contents of `main.waf.parameters.json` into `main.parameters.json` before running `azd up`
63
64
64
-
### Automated Deployment Steps:
65
-
1. Deploy Azure resources.
66
-
2. Get secret information from Azure resources.
67
-
3. Update application configuration files with secrets.
68
-
4. Set Application Configuration in Azure App Configuration.
69
-
4. Compile application, build image, and push to Azure Container Registry.
70
-
5. Configure Kubernetes cluster infrastructure.
71
-
6. Update Kubernetes configuration files.
72
-
7. Deploy certificates, ingress controller and then application images from Azure Container Registry.
65
+
---
73
66
67
+
### VM Credentials Configuration
74
68
75
-
### Execute Deployment Script:
76
-
Open PowerShell, change directory where you code cloned, then run the deploy script:
69
+
By default, the solution sets the VM administrator username and password from environment variables.
70
+
If you do not configure these values, a randomly generated GUID will be used for both the username and password.
77
71
78
-
```
79
-
cd .\Deployment\
80
-
```
81
-
```
82
-
.\resourcedeployment.ps1
72
+
To set your own VM credentials before deployment, use:
73
+
74
+
```sh
75
+
azd env set AZURE_ENV_VM_ADMIN_USERNAME <your-username>
76
+
azd env set AZURE_ENV_VM_ADMIN_PASSWORD <your-password>
83
77
```
84
78
85
-
If you run into issue with PowerShell script file not being digitally signed, you can execute below command:
79
+
> [!TIP]
80
+
> Always review and adjust parameter values (such as region, capacity, security settings and log analytics workspace configuration) to match your organization’s requirements before deploying. For production, ensure you have sufficient quota and follow the principle of least privilege for all identities and role assignments.
> The WAF-aligned configuration is under active development. More Azure Well-Architected recommendations will be added in future updates.
93
85
94
-
1.**Tenant ID** - The Azure Active Directory (AAD) tenant ID. This is used for authenticating against Azure resources. Copy this from the Azure portal.
95
-
Example: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
86
+
## Deployment Steps
96
87
97
-
2.**Subscription ID** - The Azure subscription ID where resources will be deployed.
98
-
Copy this from the Azure portal.
88
+
Consider the following settings during your deployment to modify specific settings:
99
89
100
-
3.**Environment Name** - A unique environment name (e.g., dev, test, prod).
101
-
This is used to scope resource names and group deployments logically.
4.**Resource Group Name** - The Azure resource group to deploy resources into.
104
-
You may either:
93
+
When you start the deployment, most parameters will have **default values**, but you can update the following settings [here](../docs/CustomizingAzdParameters.md):
105
94
106
-
- Specify an existing resource group to reuse it, [see below](#configuring-a-new-or-existing-resource-group) for more details, or
Once you've opened the project in [Codespaces](#github-codespaces), [Dev Containers](#vs-code-dev-containers), or [locally](#local-environment), you can deploy it to Azure by following these steps:
113
+
114
+
1. Clone the repository or download the project code via command-line:
6. **ModelLocation** - Azure data center where GPT model will be deployed.
117
-
The following locations are currently available :
119
+
120
+
Open the cloned repository in Visual Studio Code and connect to the development container.
121
+
122
+
```cmd
123
+
code .
118
124
```
119
-
'WestUS3', 'EastUS', 'EastUS2', 'SwedenCentral'
125
+
126
+
2. Login to Azure:
127
+
128
+
```shell
129
+
azd auth login
120
130
```
121
131
122
-
7. **Email** - used for issuing certificates in Kubernetes clusters from the [Let's Encrypt](https://letsencrypt.org/) service. Email address should be valid.
132
+
#### To authenticate with Azure Developer CLI (`azd`), use the following command with your **Tenant ID**:
123
133
124
-
8. **GO !** - Deployment Script executes Azure deployment, Azure Infrastructure configuration, Application code compile and publish into Kubernetes Cluster.
134
+
```sh
135
+
azd auth login --tenant-id <tenant-id>
136
+
```
125
137
126
-
## Configuring a New or Existing Resource Group
138
+
3. Provision and deploy all the resources:
127
139
128
-
➕ Creating a New Resource Group
140
+
```shell
141
+
azd up
142
+
```
129
143
130
-
You have two options:
144
+
4. Provide an `azd` environment name (e.g., "ckmapp").
145
+
5. Select a subscription from your Azure account and choose a location that has quota for all the resources.
146
+
-- This deployment will take *7-10 minutes* to provision the resources in your account and set up the solution with sample data.
147
+
- If you encounter an error or timeout during deployment, changing the location may help, as there could be availability constraints for the resources.
131
148
132
-
- Manually specify a resource group name (e.g., rg-myproject-dev)
149
+
6. If you are done trying out the application, you can delete the resources by running `azd down`.
133
150
134
-
- Leave the input field blank — a new name will be auto-generated by the script
151
+
### Post Deployment Script:
135
152
136
-
🔁 Using an Existing Resource Group
153
+
The post deployment process is very straightforward and simplified via a single [deployment script](../Deployment/resourcedeployment.ps1) that completes in approximately 20-30 minutes:
137
154
138
-
If reusing an existing Azure Resource Group:
155
+
### Automated Deployment Steps:
156
+
1. Configure Kubernetes Infrastructure.
157
+
2. Update Kubernetes configuration files with the FQDN, Container Image Path and Email address for the certificate management.
158
+
3. Configure AKS (deploy Cert Manager, Ingress Controller) and Deploy Images on the kubernetes cluster.
159
+
4. Docker build and push container images to Azure Container Registry.
160
+
5. Display the deployment result and following instructions.
161
+
162
+
Open PowerShell, change directory where you code cloned, then run the deploy script:
139
163
140
-
- Provide the exact name of the existing resource group
164
+
```
165
+
cd .\Deployment\
166
+
```
167
+
```
168
+
.\resourcedeployment.ps1
169
+
```
141
170
142
-
- Ensure the environment name matches the original environment used for that resource group
171
+
If you run into issue with PowerShell script file not being digitally signed, you can execute below command:
143
172
144
-
⚠️ After deployment, please restart the AKS (Kubernetes) service to ensure updated configurations are applied when using a reused resource group.
1. **Email** - used for issuing certificates in Kubernetes clusters from the [Let's Encrypt](https://letsencrypt.org/) service. Email address should be valid.
147
181
148
-
<!-- 1. **Data File Upload and Processing** - Once the deployment finished, The Sample Data File upload and Document processing starts. -->
0 commit comments