Skip to content

Commit 96f6a36

Browse files
Merge pull request microsoft#424 from microsoft/dev
feat: merged to main from dev
2 parents 427f019 + 9c2983c commit 96f6a36

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+3644
-1330
lines changed

.github/workflows/deploy-waf.yml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -109,13 +109,15 @@ jobs:
109109
--resource-group ${{ env.RESOURCE_GROUP_NAME }} \
110110
--template-file infra/main.bicep \
111111
--parameters \
112-
environmentName=${{ env.SOLUTION_PREFIX }} \
113-
useWafAlignedArchitecture=true \
114-
aiDeploymentsLocation='${{ env.AZURE_LOCATION }}' \
112+
solutionName=${{ env.SOLUTION_PREFIX }} \
113+
location="${{ env.AZURE_LOCATION }}" \
114+
azureAiServiceLocation='${{ env.AZURE_LOCATION }}' \
115115
gptModelCapacity=5 \
116-
virtualMachineConfiguration='{"adminUsername": "adminuser", "adminPassword": "P@ssw0rd1234"}' \
117-
logAnalyticsWorkspaceConfiguration='{"existingWorkspaceResourceId": ""}'
118-
116+
enableTelemetry=true \
117+
enableMonitoring=true \
118+
enablePrivateNetworking=true \
119+
enableScalability=true \
120+
119121
120122
- name: Send Notification on Failure
121123
if: failure()

.github/workflows/deploy.yml

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -129,19 +129,14 @@ jobs:
129129
--resource-group ${{ env.RESOURCE_GROUP_NAME }} \
130130
--template-file infra/main.bicep \
131131
--parameters \
132-
environmentName=${{ env.SOLUTION_PREFIX }} \
133-
solutionLocation="${{ env.AZURE_LOCATION }}" \
134-
modelDeploymentType="GlobalStandard" \
132+
solutionName=${{ env.SOLUTION_PREFIX }} \
133+
location="${{ env.AZURE_LOCATION }}" \
134+
gptModelDeploymentType="GlobalStandard" \
135135
gptModelName="gpt-4o" \
136136
gptModelVersion="2024-08-06" \
137137
imageTag="${IMAGE_TAG}" \
138-
useWafAlignedArchitecture=false \
139-
aiDeploymentsLocation='${{ env.AZURE_LOCATION }}' \
138+
azureAiServiceLocation='${{ env.AZURE_LOCATION }}' \
140139
gptModelCapacity=150 \
141-
logAnalyticsWorkspaceConfiguration='{"dataRetentionInDays": 30, "existingWorkspaceResourceId": ""}' \
142-
applicationInsightsConfiguration='{"retentionInDays": 30}' \
143-
virtualNetworkConfiguration='{"enabled": false}' \
144-
webServerFarmConfiguration='{"skuCapacity": 1, "skuName": "B2"}' \
145140
--output json
146141
147142
- name: Extract Web App and API App URLs

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -458,3 +458,7 @@ __pycache__/
458458
*.whl
459459
.azure
460460
.github/copilot-instructions.md
461+
462+
# Bicep local files
463+
*.local*.bicepparam
464+
*.local*.parameters.json

docs/CustomizingAzdParameters.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ By default this template will use the environment name as the prefix to prevent
1919
| `AZURE_ENV_IMAGETAG` | string | `latest` | Docker image tag used for container deployments. |
2020
| `AZURE_ENV_ENABLE_TELEMETRY` | bool | `true` | Enables telemetry for monitoring and diagnostics. |
2121
| `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. |
22+
| `AZURE_ENV_VM_ADMIN_USERNAME` | string | `take(newGuid(), 20)` | The administrator username for the virtual machine. |
23+
| `AZURE_ENV_VM_ADMIN_PASSWORD` | string | `newGuid()` | The administrator password for the virtual machine. |
2224
---
2325

2426
## How to Set a Parameter

docs/DeploymentGuide.md

Lines changed: 41 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -26,42 +26,68 @@ Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
2626

2727
This will allow the scripts to run for the current session without permanently changing your system's policy.
2828

29+
### **Azure Developer CLI (azd) Requirement**
30+
31+
Ensure that you are using the latest version of the [Azure Developer CLI](https://learn.microsoft.com/en-us/azure/developer/azure-developer-cli/overview).
32+
The `azd` version must be **1.18.0 or higher**.
33+
34+
Upgrade commands by OS:
35+
36+
* **Windows (using winget):**
37+
38+
```bash
39+
winget install microsoft.azd
40+
```
41+
42+
* **Linux (using apt):**
43+
44+
```bash
45+
curl -fsSL https://aka.ms/install-azd.sh | bash
46+
```
47+
48+
* **macOS (using Homebrew):**
49+
50+
```bash
51+
brew update && brew tap azure/azd && brew install azd
52+
```
53+
2954
## Deployment Options & Steps
3055

3156
### Sandbox or WAF Aligned Deployment Options
3257

3358
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.
3459

35-
When running `azd up`, you’ll now be prompted to choose between a **WAF-aligned configuration** and a **sandbox configuration** using a simple selection:
60+
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.
3661

37-
- A **sandbox environment** — ideal for development and proof-of-concept scenarios, with minimal security and cost controls for rapid iteration.
62+
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:
3863

39-
- A **production deployments environment**, 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:
4064
- Enhanced network security (e.g., Network protection with private endpoints)
4165
- Stricter access controls and managed identities
4266
- Logging, monitoring, and diagnostics enabled by default
4367
- Resource tagging and cost management recommendations
4468

4569
**How to choose your deployment configuration:**
4670

47-
When prompted during `azd up`:
71+
* Use the default `main.parameters.json` file for a **sandbox/dev environment**
72+
* For a **WAF-aligned, production-ready deployment**, copy the contents of `main.waf.parameters.json` into `main.parameters.json` before running `azd up`
73+
74+
---
4875

49-
![useWAFAlignedArchitecture](images/macae_waf_prompt.png)
76+
### VM Credentials Configuration
5077

51-
- Select **`true`** to deploy a **WAF-aligned, production-ready environment**
52-
- Select **`false`** to deploy a **lightweight sandbox/dev environment**
78+
By default, the solution sets the VM administrator username and password from environment variables.
79+
If you do not configure these values, a randomly generated GUID will be used for both the username and password.
80+
81+
To set your own VM credentials before deployment, use:
82+
83+
```sh
84+
azd env set AZURE_ENV_VM_ADMIN_USERNAME <your-username>
85+
azd env set AZURE_ENV_VM_ADMIN_PASSWORD <your-password>
86+
```
5387

5488
> [!TIP]
5589
> 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.
5690
57-
> To reuse an existing Log Analytics workspace, update the existingWorkspaceResourceId field under the logAnalyticsWorkspaceConfiguration parameter in the .bicep file with the resource ID of your existing workspace.
58-
For example:
59-
```
60-
param logAnalyticsWorkspaceConfiguration = {
61-
dataRetentionInDays: 30
62-
existingWorkspaceResourceId: '/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.OperationalInsights/workspaces/<workspace-name>'
63-
}
64-
```
6591

6692
> [!IMPORTANT]
6793
> The WAF-aligned configuration is under active development. More Azure Well-Architected recommendations will be added in future updates.

0 commit comments

Comments
 (0)