From 992f620e45fc12e1e36f2cdf5e9a90704db6e5dd Mon Sep 17 00:00:00 2001 From: Arcturus Zhang Date: Tue, 15 Jul 2025 17:04:49 +0800 Subject: [PATCH 1/3] update azure.provisioning.storage to 1.1.2 --- Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index ac08dfc46d5..1fcf7ee755d 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -48,7 +48,7 @@ - + From c0c4a3e0cac7ac282715a7fcda2ff70eae6fda63 Mon Sep 17 00:00:00 2001 From: Eric Erhardt Date: Fri, 18 Jul 2025 15:34:22 -0500 Subject: [PATCH 2/3] Revert "Fix missing 'name' property in TableService Bicep generation (#10334)" This reverts commit 059b8ff5fe86a88bcf232c98a17ff85455471113. --- .../AzureStorageExtensions.cs | 9 +++++++++ .../AzureStorageResource.cs | 1 + .../AzureTableStorageResource.cs | 11 +++++++++++ ...Tests.AddAzureStorageViaPublishMode.verified.bicep | 6 +++++- ...orageServiceGeneratesSingleResource.verified.bicep | 4 ++++ ...nsionsTests.ResourceNamesBicepValid.verified.bicep | 6 +++++- 6 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/Aspire.Hosting.Azure.Storage/AzureStorageExtensions.cs b/src/Aspire.Hosting.Azure.Storage/AzureStorageExtensions.cs index fafd5602330..9184bd1bae0 100644 --- a/src/Aspire.Hosting.Azure.Storage/AzureStorageExtensions.cs +++ b/src/Aspire.Hosting.Azure.Storage/AzureStorageExtensions.cs @@ -102,6 +102,13 @@ public static IResourceBuilder AddAzureStorage(this IDistr } } + if (azureResource.TableStorageResource is not null) + { + var tableService = azureResource.TableStorageResource.ToProvisioningEntity(); + tableService.Parent = storageAccount; + infrastructure.Add(tableService); + } + infrastructure.Add(new ProvisioningOutput("blobEndpoint", typeof(string)) { Value = storageAccount.PrimaryEndpoints.BlobUri }); infrastructure.Add(new ProvisioningOutput("queueEndpoint", typeof(string)) { Value = storageAccount.PrimaryEndpoints.QueueUri }); infrastructure.Add(new ProvisioningOutput("tableEndpoint", typeof(string)) { Value = storageAccount.PrimaryEndpoints.TableUri }); @@ -463,6 +470,8 @@ public static IResourceBuilder AddTableService(this I name ??= builder.Resource.Name + "-tables"; var resource = new AzureTableStorageResource(name, builder.Resource); + builder.Resource.TableStorageResource = resource; + return builder.ApplicationBuilder.AddResource(resource); } diff --git a/src/Aspire.Hosting.Azure.Storage/AzureStorageResource.cs b/src/Aspire.Hosting.Azure.Storage/AzureStorageResource.cs index 5547ad00f69..05994fe2e80 100644 --- a/src/Aspire.Hosting.Azure.Storage/AzureStorageResource.cs +++ b/src/Aspire.Hosting.Azure.Storage/AzureStorageResource.cs @@ -25,6 +25,7 @@ public class AzureStorageResource(string name, Action BlobContainers { get; } = []; diff --git a/src/Aspire.Hosting.Azure.Storage/AzureTableStorageResource.cs b/src/Aspire.Hosting.Azure.Storage/AzureTableStorageResource.cs index f3269cd10dc..bf6fa5de553 100644 --- a/src/Aspire.Hosting.Azure.Storage/AzureTableStorageResource.cs +++ b/src/Aspire.Hosting.Azure.Storage/AzureTableStorageResource.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using Aspire.Hosting.ApplicationModel; +using Azure.Provisioning; namespace Aspire.Hosting.Azure; @@ -40,4 +41,14 @@ void IResourceWithAzureFunctionsConfig.ApplyAzureFunctionsConfiguration(IDiction target[$"{AzureStorageResource.TablesConnectionKeyPrefix}__{connectionName}__ServiceUri"] = Parent.TableEndpoint; // Updated for consistency } } + + /// + /// Converts the current instance to a provisioning entity. + /// + /// A instance. + internal global::Azure.Provisioning.Storage.TableService ToProvisioningEntity() + { + global::Azure.Provisioning.Storage.TableService service = new(Infrastructure.NormalizeBicepIdentifier(Name)); + return service; + } } diff --git a/tests/Aspire.Hosting.Azure.Tests/Snapshots/AzureStorageExtensionsTests.AddAzureStorageViaPublishMode.verified.bicep b/tests/Aspire.Hosting.Azure.Tests/Snapshots/AzureStorageExtensionsTests.AddAzureStorageViaPublishMode.verified.bicep index 878750b2481..e8de364e8b1 100644 --- a/tests/Aspire.Hosting.Azure.Tests/Snapshots/AzureStorageExtensionsTests.AddAzureStorageViaPublishMode.verified.bicep +++ b/tests/Aspire.Hosting.Azure.Tests/Snapshots/AzureStorageExtensionsTests.AddAzureStorageViaPublishMode.verified.bicep @@ -33,10 +33,14 @@ resource queue 'Microsoft.Storage/storageAccounts/queueServices@2024-01-01' = { parent: storage } +resource table 'Microsoft.Storage/storageAccounts/tableServices@2024-01-01' = { + parent: storage +} + output blobEndpoint string = storage.properties.primaryEndpoints.blob output queueEndpoint string = storage.properties.primaryEndpoints.queue output tableEndpoint string = storage.properties.primaryEndpoints.table -output name string = storage.name \ No newline at end of file +output name string = storage.name diff --git a/tests/Aspire.Hosting.Azure.Tests/Snapshots/AzureStorageExtensionsTests.AddMultipleStorageServiceGeneratesSingleResource.verified.bicep b/tests/Aspire.Hosting.Azure.Tests/Snapshots/AzureStorageExtensionsTests.AddMultipleStorageServiceGeneratesSingleResource.verified.bicep index 5ff63a3a1c2..2d1fce79577 100644 --- a/tests/Aspire.Hosting.Azure.Tests/Snapshots/AzureStorageExtensionsTests.AddMultipleStorageServiceGeneratesSingleResource.verified.bicep +++ b/tests/Aspire.Hosting.Azure.Tests/Snapshots/AzureStorageExtensionsTests.AddMultipleStorageServiceGeneratesSingleResource.verified.bicep @@ -51,6 +51,10 @@ resource queue2 'Microsoft.Storage/storageAccounts/queueServices/queues@2024-01- parent: queueService2 } +resource tableService2 'Microsoft.Storage/storageAccounts/tableServices@2024-01-01' = { + parent: storage +} + output blobEndpoint string = storage.properties.primaryEndpoints.blob output queueEndpoint string = storage.properties.primaryEndpoints.queue diff --git a/tests/Aspire.Hosting.Azure.Tests/Snapshots/AzureStorageExtensionsTests.ResourceNamesBicepValid.verified.bicep b/tests/Aspire.Hosting.Azure.Tests/Snapshots/AzureStorageExtensionsTests.ResourceNamesBicepValid.verified.bicep index 576667929f8..0a48160a069 100644 --- a/tests/Aspire.Hosting.Azure.Tests/Snapshots/AzureStorageExtensionsTests.ResourceNamesBicepValid.verified.bicep +++ b/tests/Aspire.Hosting.Azure.Tests/Snapshots/AzureStorageExtensionsTests.ResourceNamesBicepValid.verified.bicep @@ -41,10 +41,14 @@ resource myqueue 'Microsoft.Storage/storageAccounts/queueServices/queues@2024-01 parent: myqueues } +resource mytables 'Microsoft.Storage/storageAccounts/tableServices@2024-01-01' = { + parent: storage +} + output blobEndpoint string = storage.properties.primaryEndpoints.blob output queueEndpoint string = storage.properties.primaryEndpoints.queue output tableEndpoint string = storage.properties.primaryEndpoints.table -output name string = storage.name \ No newline at end of file +output name string = storage.name From 278573e6dbbf2649d184f6630ead2028f281db12 Mon Sep 17 00:00:00 2001 From: Eric Erhardt Date: Fri, 18 Jul 2025 16:02:48 -0500 Subject: [PATCH 3/3] Fix tests for latest updates. --- ...xtensionsTests.AddAzureStorageViaPublishMode.verified.bicep | 3 ++- ...ultipleStorageServiceGeneratesSingleResource.verified.bicep | 1 + ...orageExtensionsTests.ResourceNamesBicepValid.verified.bicep | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/tests/Aspire.Hosting.Azure.Tests/Snapshots/AzureStorageExtensionsTests.AddAzureStorageViaPublishMode.verified.bicep b/tests/Aspire.Hosting.Azure.Tests/Snapshots/AzureStorageExtensionsTests.AddAzureStorageViaPublishMode.verified.bicep index e8de364e8b1..c8b8f5894c5 100644 --- a/tests/Aspire.Hosting.Azure.Tests/Snapshots/AzureStorageExtensionsTests.AddAzureStorageViaPublishMode.verified.bicep +++ b/tests/Aspire.Hosting.Azure.Tests/Snapshots/AzureStorageExtensionsTests.AddAzureStorageViaPublishMode.verified.bicep @@ -34,6 +34,7 @@ resource queue 'Microsoft.Storage/storageAccounts/queueServices@2024-01-01' = { } resource table 'Microsoft.Storage/storageAccounts/tableServices@2024-01-01' = { + name: 'default' parent: storage } @@ -43,4 +44,4 @@ output queueEndpoint string = storage.properties.primaryEndpoints.queue output tableEndpoint string = storage.properties.primaryEndpoints.table -output name string = storage.name +output name string = storage.name \ No newline at end of file diff --git a/tests/Aspire.Hosting.Azure.Tests/Snapshots/AzureStorageExtensionsTests.AddMultipleStorageServiceGeneratesSingleResource.verified.bicep b/tests/Aspire.Hosting.Azure.Tests/Snapshots/AzureStorageExtensionsTests.AddMultipleStorageServiceGeneratesSingleResource.verified.bicep index 2d1fce79577..f2fe894c954 100644 --- a/tests/Aspire.Hosting.Azure.Tests/Snapshots/AzureStorageExtensionsTests.AddMultipleStorageServiceGeneratesSingleResource.verified.bicep +++ b/tests/Aspire.Hosting.Azure.Tests/Snapshots/AzureStorageExtensionsTests.AddMultipleStorageServiceGeneratesSingleResource.verified.bicep @@ -52,6 +52,7 @@ resource queue2 'Microsoft.Storage/storageAccounts/queueServices/queues@2024-01- } resource tableService2 'Microsoft.Storage/storageAccounts/tableServices@2024-01-01' = { + name: 'default' parent: storage } diff --git a/tests/Aspire.Hosting.Azure.Tests/Snapshots/AzureStorageExtensionsTests.ResourceNamesBicepValid.verified.bicep b/tests/Aspire.Hosting.Azure.Tests/Snapshots/AzureStorageExtensionsTests.ResourceNamesBicepValid.verified.bicep index 0a48160a069..b10f608b77c 100644 --- a/tests/Aspire.Hosting.Azure.Tests/Snapshots/AzureStorageExtensionsTests.ResourceNamesBicepValid.verified.bicep +++ b/tests/Aspire.Hosting.Azure.Tests/Snapshots/AzureStorageExtensionsTests.ResourceNamesBicepValid.verified.bicep @@ -42,6 +42,7 @@ resource myqueue 'Microsoft.Storage/storageAccounts/queueServices/queues@2024-01 } resource mytables 'Microsoft.Storage/storageAccounts/tableServices@2024-01-01' = { + name: 'default' parent: storage } @@ -51,4 +52,4 @@ output queueEndpoint string = storage.properties.primaryEndpoints.queue output tableEndpoint string = storage.properties.primaryEndpoints.table -output name string = storage.name +output name string = storage.name \ No newline at end of file