diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 46378ec..c286b5b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -133,7 +133,6 @@ jobs: --template-file infra/main.bicep \ --parameters solutionName=${{env.SOLUTION_PREFIX}} \ --parameters location=${{ env.AZURE_LOCATION }} \ - --parameters aiDeploymentLocation=${{ env.AZURE_LOCATION }} \ --parameters azureAiServiceLocation=${{ env.AZURE_LOCATION }} \ --parameters createdBy="pipeline" \ diff --git a/.github/workflows/job-deploy-linux.yml b/.github/workflows/job-deploy-linux.yml index 8dd0b1c..516a7c5 100644 --- a/.github/workflows/job-deploy-linux.yml +++ b/.github/workflows/job-deploy-linux.yml @@ -237,9 +237,7 @@ jobs: # Set additional parameters azd env set AZURE_SUBSCRIPTION_ID="${{ secrets.AZURE_SUBSCRIPTION_ID }}" - azd env set AZURE_AI_SERVICE_LOCATION="$AZURE_ENV_OPENAI_LOCATION" - azd env set AZURE_AI_DEPLOYMENT_LOCATION="$AZURE_ENV_OPENAI_LOCATION" - azd env set AZURE_AI_SERVICE_LOCATION="$AZURE_ENV_OPENAI_LOCATION" + azd env set AZURE_ENV_AI_SERVICE_LOCATION="$AZURE_ENV_OPENAI_LOCATION" azd env set AZURE_LOCATION="$AZURE_LOCATION" azd env set AZURE_RESOURCE_GROUP="$RESOURCE_GROUP_NAME" azd env set AZURE_ENV_IMAGETAG="$IMAGE_TAG" @@ -249,9 +247,9 @@ jobs: # Extract ACR name from login server and set as environment variable ACR_NAME=$(echo "${{ secrets.ACR_TEST_LOGIN_SERVER }}") azd env set AZURE_CONTAINER_REGISTRY_HOST="$ACR_NAME" - echo "Set ACR name to: $ACR_NAME" + echo "Set ACR host to: $ACR_NAME" else - echo "Skipping ACR name configuration (using existing image)" + echo "Skipping ACR endpoint configuration (using existing image)" fi if [[ "$EXP" == "true" ]]; then @@ -261,19 +259,19 @@ jobs: if [[ -n "$AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID_INPUT" ]]; then EXP_LOG_ANALYTICS_ID="$AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID_INPUT" else - EXP_LOG_ANALYTICS_ID="${{ secrets.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}" + EXP_LOG_ANALYTICS_ID="${{ secrets.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }}" fi if [[ -n "$AZURE_EXISTING_AI_PROJECT_RESOURCE_ID_INPUT" ]]; then EXP_AI_PROJECT_ID="$AZURE_EXISTING_AI_PROJECT_RESOURCE_ID_INPUT" else - EXP_AI_PROJECT_ID="${{ secrets.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }}" + EXP_AI_PROJECT_ID="${{ secrets.AZURE_ENV_FOUNDRY_PROJECT_RID }}" fi - echo "AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: $EXP_LOG_ANALYTICS_ID" - echo "AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: $EXP_AI_PROJECT_ID" - azd env set AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID="$EXP_LOG_ANALYTICS_ID" - azd env set AZURE_EXISTING_AI_PROJECT_RESOURCE_ID="$EXP_AI_PROJECT_ID" + echo "AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: $EXP_LOG_ANALYTICS_ID" + echo "AZURE_ENV_FOUNDRY_PROJECT_RID: $EXP_AI_PROJECT_ID" + azd env set AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID="$EXP_LOG_ANALYTICS_ID" + azd env set AZURE_ENV_FOUNDRY_PROJECT_RID="$EXP_AI_PROJECT_ID" else echo "❌ EXP DISABLED - Skipping EXP parameters" if [[ -n "$AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID_INPUT" ]] || [[ -n "$AZURE_EXISTING_AI_PROJECT_RESOURCE_ID_INPUT" ]]; then diff --git a/.github/workflows/job-deploy-windows.yml b/.github/workflows/job-deploy-windows.yml index 8b8f655..7653aec 100644 --- a/.github/workflows/job-deploy-windows.yml +++ b/.github/workflows/job-deploy-windows.yml @@ -238,9 +238,7 @@ jobs: # Set additional parameters azd env set AZURE_SUBSCRIPTION_ID="${{ secrets.AZURE_SUBSCRIPTION_ID }}" - azd env set AZURE_AI_SERVICE_LOCATION="$env:AZURE_ENV_OPENAI_LOCATION" - azd env set AZURE_AI_DEPLOYMENT_LOCATION="$env:AZURE_ENV_OPENAI_LOCATION" - azd env set AZURE_AI_SERVICE_LOCATION="$env:AZURE_ENV_OPENAI_LOCATION" + azd env set AZURE_ENV_AI_SERVICE_LOCATION="$env:AZURE_ENV_OPENAI_LOCATION" azd env set AZURE_LOCATION="$env:AZURE_LOCATION" azd env set AZURE_RESOURCE_GROUP="$env:RESOURCE_GROUP_NAME" azd env set AZURE_ENV_IMAGETAG="$env:IMAGE_TAG" @@ -249,9 +247,9 @@ jobs: if ($env:BUILD_DOCKER_IMAGE -eq "true") { $ACR_NAME = "${{ secrets.ACR_TEST_LOGIN_SERVER }}" azd env set AZURE_CONTAINER_REGISTRY_HOST="$ACR_NAME" - Write-Host "Set ACR name to: $ACR_NAME" + Write-Host "Set ACR host to: $ACR_NAME" } else { - Write-Host "Skipping ACR name configuration (using existing image)" + Write-Host "Skipping ACR endpoint configuration (using existing image)" } if ($env:EXP -eq "true") { @@ -261,19 +259,19 @@ jobs: if ($env:AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID -ne "") { $EXP_LOG_ANALYTICS_ID = $env:AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID } else { - $EXP_LOG_ANALYTICS_ID = "${{ secrets.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}" + $EXP_LOG_ANALYTICS_ID = "${{ secrets.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID }}" } if ($env:AZURE_EXISTING_AI_PROJECT_RESOURCE_ID -ne "") { $EXP_AI_PROJECT_ID = $env:AZURE_EXISTING_AI_PROJECT_RESOURCE_ID } else { - $EXP_AI_PROJECT_ID = "${{ secrets.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }}" + $EXP_AI_PROJECT_ID = "${{ secrets.AZURE_ENV_FOUNDRY_PROJECT_RID }}" } - Write-Host "AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: $EXP_LOG_ANALYTICS_ID" - Write-Host "AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: $EXP_AI_PROJECT_ID" - azd env set AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID="$EXP_LOG_ANALYTICS_ID" - azd env set AZURE_EXISTING_AI_PROJECT_RESOURCE_ID="$EXP_AI_PROJECT_ID" + Write-Host "AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID: $EXP_LOG_ANALYTICS_ID" + Write-Host "AZURE_ENV_FOUNDRY_PROJECT_RID: $EXP_AI_PROJECT_ID" + azd env set AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID="$EXP_LOG_ANALYTICS_ID" + azd env set AZURE_ENV_FOUNDRY_PROJECT_RID="$EXP_AI_PROJECT_ID" } else { Write-Host "❌ EXP DISABLED - Skipping EXP parameters" } diff --git a/docs/CustomizingAzdParameters.md b/docs/CustomizingAzdParameters.md index 7989a84..201065f 100644 --- a/docs/CustomizingAzdParameters.md +++ b/docs/CustomizingAzdParameters.md @@ -10,13 +10,14 @@ By default this template will use the environment name as the prefix to prevent | ------------------------------- | ------- | ----------------------- | ------------------------------------------------------------------------------------- | | `AZURE_ENV_NAME` | string | `conmig` | Sets the environment name prefix for all Azure resources. | | `AZURE_LOCATION` | string | `westus` | Sets the location/region for all Azure resources. | -| `AZURE_SECONDARY_LOCATION` | string | `eastus2` | Specifies a secondary Azure region. | -| `AZURE_CONTAINER_REGISTRY_HOST` | string | `myregistry.azurecr.io` | Specifies the container registry from which to pull app container images. | -| `AZURE_AI_DEPLOYMENT_LOCATION` | string | `eastus2` | Specifies alternative location for AI model resources. | +| `AZURE_CONTAINER_REGISTRY_HOST` | string | `myregistry.azurecr.io` | Specifies the container registry host from which to pull app container images. | +| `AZURE_ENV_AI_SERVICE_LOCATION` | string | `eastus2` | Specifies the Azure region for AI services (OpenAI/AI Foundry). | | `AZURE_AI_DEPLOYMENT_TYPE` | string | `GlobalStandard` | Defines the model deployment type (allowed values: `Standard`, `GlobalStandard`). | -| `AZURE_AI_MODEL_NAME` | string | `o3` | Specifies the `o` model name. | -| `AZURE_AI_MODEL_VERSION` | string | `2025-04-16` | Specifies the `o` model version. | -| `AZURE_AI_MODEL_CAPACITY` | integer | `200` | Sets the model capacity (choose based on your subscription's available `o` capacity). | +| `AZURE_AI_MODEL_NAME` | string | `o3` | Specifies the AI model name. | +| `AZURE_AI_MODEL_VERSION` | string | `2025-04-16` | Specifies the AI model version. | +| `AZURE_AI_MODEL_CAPACITY` | integer | `200` | Sets the model capacity (choose based on your subscription's available capacity). | +| `AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID` | string | `` | Optional. Resource ID of an existing Log Analytics workspace to use. | +| `AZURE_ENV_FOUNDRY_PROJECT_RID` | string | `` | Optional. Resource ID of an existing AI Foundry project to use. | | `AZURE_ENV_VM_ADMIN_USERNAME` | string | `` | The administrator username for the virtual machine. | | `AZURE_ENV_VM_ADMIN_PASSWORD` | string | `` | The administrator password for the virtual machine. | | `AZURE_ENV_IMAGETAG` | string | `latest` | Specifies the container image tag to use for deployment. | diff --git a/docs/re-use-foundry-project.md b/docs/re-use-foundry-project.md index 7d33dfb..94c6083 100644 --- a/docs/re-use-foundry-project.md +++ b/docs/re-use-foundry-project.md @@ -36,7 +36,7 @@ In the left-hand menu of the project blade: ### 6. Set the Foundry Project Resource ID in Your Environment Run the following command in your terminal ```bash -azd env set AZURE_EXISTING_AI_PROJECT_RESOURCE_ID '' +azd env set AZURE_ENV_FOUNDRY_PROJECT_RID '' ``` Replace `` with the value obtained from Step 5. diff --git a/docs/re-use-log-analytics.md b/docs/re-use-log-analytics.md index 1fa7a35..7ee170f 100644 --- a/docs/re-use-log-analytics.md +++ b/docs/re-use-log-analytics.md @@ -23,7 +23,7 @@ Copy Resource ID that is your Workspace ID ### 4. Set the Workspace ID in Your Environment Run the following command in your terminal ```bash -azd env set AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID '' +azd env set AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID '' ``` Replace `` with the value obtained from Step 3. diff --git a/infra/main.bicep b/infra/main.bicep index 8fe3fee..57771e4 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -39,22 +39,7 @@ var solutionLocation = empty(location) ? resourceGroup().location : location @description('Required. Azure region for AI services (OpenAI/AI Foundry). Must be a region that supports o3 model deployment.') param azureAiServiceLocation string -@allowed([ - 'australiaeast' - 'eastus' - 'eastus2' - 'francecentral' - 'japaneast' - 'norwayeast' - 'southindia' - 'swedencentral' - 'uksouth' - 'westus' - 'westus3' -]) -@description('Required. Azure region for AI model deployment. Should match azureAiServiceLocation for optimal performance.') -#disable-next-line no-unused-params -param aiDeploymentLocation string = azureAiServiceLocation + @description('Optional. The host (excluding https://) of an existing container registry. This is the `loginServer` when using Azure Container Registry.') param containerRegistryHost string = 'containermigrationacr.azurecr.io' diff --git a/infra/main.json b/infra/main.json index 659b68a..0e88303 100644 --- a/infra/main.json +++ b/infra/main.json @@ -5,8 +5,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.40.2.10011", - "templateHash": "46164870636097653" + "version": "0.41.2.15936", + "templateHash": "14235802001827059391" } }, "parameters": { @@ -61,26 +61,6 @@ "description": "Required. Azure region for AI services (OpenAI/AI Foundry). Must be a region that supports o3 model deployment." } }, - "aiDeploymentLocation": { - "type": "string", - "defaultValue": "[parameters('azureAiServiceLocation')]", - "allowedValues": [ - "australiaeast", - "eastus", - "eastus2", - "francecentral", - "japaneast", - "norwayeast", - "southindia", - "swedencentral", - "uksouth", - "westus", - "westus3" - ], - "metadata": { - "description": "Required. Azure region for AI model deployment. Should match azureAiServiceLocation for optimal performance." - } - }, "containerRegistryHost": { "type": "string", "defaultValue": "containermigrationacr.azurecr.io", @@ -4698,8 +4678,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.40.2.10011", - "templateHash": "13184395339364197836" + "version": "0.41.2.15936", + "templateHash": "10681183203421948888" } }, "definitions": { @@ -30068,8 +30048,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.40.2.10011", - "templateHash": "8742987061721021759" + "version": "0.41.2.15936", + "templateHash": "8365054813170845685" } }, "definitions": { @@ -52099,9 +52079,9 @@ }, "dependsOn": [ "appIdentity", - "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').cognitiveServices)]", - "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').aiServices)]", "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').openAI)]", + "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').aiServices)]", + "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').cognitiveServices)]", "virtualNetwork" ] }, diff --git a/infra/main.parameters.json b/infra/main.parameters.json index cd87169..d01b14c 100644 --- a/infra/main.parameters.json +++ b/infra/main.parameters.json @@ -8,20 +8,11 @@ "location": { "value": "${AZURE_LOCATION}" }, - "secondaryLocation": { - "value": "${AZURE_SECONDARY_LOCATION}" - }, "containerRegistryHost": { "value": "${AZURE_CONTAINER_REGISTRY_HOST}" }, "azureAiServiceLocation": { - "value": "${AZURE_AI_SERVICE_LOCATION}" - }, - "aiDeploymentLocation": { - "value": "${AZURE_AI_DEPLOYMENT_LOCATION}" - }, - "azureAiServiceLocation": { - "value": "${AZURE_AI_SERVICE_LOCATION}" + "value": "${AZURE_ENV_AI_SERVICE_LOCATION}" }, "aiDeploymentType": { "value": "${AZURE_AI_DEPLOYMENT_TYPE}" @@ -35,14 +26,11 @@ "aiModelCapacity": { "value": "${AZURE_AI_MODEL_CAPACITY}" }, - "enableTelemetry": { - "value": true - }, "existingLogAnalyticsWorkspaceId": { - "value": "${AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID}" + "value": "${AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID}" }, - "existingFoundryProjectResourceId":{ - "value": "${AZURE_EXISTING_AI_PROJECT_RESOURCE_ID}" + "existingFoundryProjectResourceId": { + "value": "${AZURE_ENV_FOUNDRY_PROJECT_RID}" }, "vmAdminUsername": { "value": "${AZURE_ENV_VM_ADMIN_USERNAME}" diff --git a/infra/main.waf.parameters.json b/infra/main.waf.parameters.json index c914e04..d6671d1 100644 --- a/infra/main.waf.parameters.json +++ b/infra/main.waf.parameters.json @@ -8,20 +8,11 @@ "location": { "value": "${AZURE_LOCATION}" }, - "secondaryLocation": { - "value": "${AZURE_SECONDARY_LOCATION}" - }, "containerRegistryHost": { "value": "${AZURE_CONTAINER_REGISTRY_HOST}" }, "azureAiServiceLocation": { - "value": "${AZURE_AI_SERVICE_LOCATION}" - }, - "aiDeploymentLocation": { - "value": "${AZURE_AI_DEPLOYMENT_LOCATION}" - }, - "azureAiServiceLocation": { - "value": "${AZURE_AI_SERVICE_LOCATION}" + "value": "${AZURE_ENV_AI_SERVICE_LOCATION}" }, "aiDeploymentType": { "value": "${AZURE_AI_DEPLOYMENT_TYPE}" @@ -54,10 +45,10 @@ "value": "${AZURE_ENV_VM_ADMIN_PASSWORD}" }, "existingLogAnalyticsWorkspaceId": { - "value": "${AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID}" + "value": "${AZURE_ENV_LOG_ANALYTICS_WORKSPACE_RID}" }, - "existingFoundryProjectResourceId":{ - "value": "${AZURE_EXISTING_AI_PROJECT_RESOURCE_ID}" + "existingFoundryProjectResourceId": { + "value": "${AZURE_ENV_FOUNDRY_PROJECT_RID}" }, "imageTag": { "value": "${AZURE_ENV_IMAGETAG}"