From 6738e4d8d2e7ed461e6791f7c6af1a4a3efb3fa8 Mon Sep 17 00:00:00 2001 From: Eric Erhardt Date: Fri, 22 Nov 2024 11:48:45 -0600 Subject: [PATCH] Fix Azure Provisioning With Refactor Bicep parameter usage (dotnet/aspire#6683), we changed when "well-known" parameters were added to the AzureBicepResource. Instead of adding them up front in 2 places, we add them during bicep generation (i.e. ConfigureInfrastructure) and then sync the bicep parameters back to Aspire's AzureBicepResource.Parameters. This broke Azure Provisioning because it is looking for well known parameters before GetBicepTemplateFile is called. It needs to populate the well-known parameters after. The fix is to move the calls around so PopulateWellKnownParameters is called after GetBicepTemplateFile. --- .../Provisioning/Provisioners/BicepProvisioner.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Aspire.Hosting.Azure/Provisioning/Provisioners/BicepProvisioner.cs b/src/Aspire.Hosting.Azure/Provisioning/Provisioners/BicepProvisioner.cs index 30bf2cfc608..4bf6e9f308c 100644 --- a/src/Aspire.Hosting.Azure/Provisioning/Provisioners/BicepProvisioner.cs +++ b/src/Aspire.Hosting.Azure/Provisioning/Provisioners/BicepProvisioner.cs @@ -121,17 +121,18 @@ await notificationService.PublishUpdateAsync(resource, state => state with var resourceLogger = loggerService.GetLogger(resource); - PopulateWellKnownParameters(resource, context); - if (FindFullPathFromPath("az") is not { } azPath) { throw new AzureCliNotOnPathException(); } var template = resource.GetBicepTemplateFile(); - var path = template.Path; + // GetBicepTemplateFile may have added new well-known parameters, so we need + // to populate them only after calling GetBicepTemplateFile. + PopulateWellKnownParameters(resource, context); + KeyVaultResource? keyVault = null; if (resource.Parameters.ContainsKey(AzureBicepResource.KnownParameters.KeyVaultName))