Skip to content

[Breaking change]: Azure Storage APIs #3930

@sebastienros

Description

@sebastienros

Description

Renaming some methods to prevent confusion, and adding new methods to provision Queues directly (same as existing Blob Container creation).

9.4

dotnet/aspire#10241

Aspire.Azure.Hosting.Storage:

- public static IResourceBuilder<AzureBlobStorageResource> AddBlobs(this IResourceBuilder<AzureStorageResource> builder, [ResourceName] string name)
+ public static IResourceBuilder<AzureBlobStorageResource> AddBlobService(this IResourceBuilder<AzureStorageResource> builder, [ResourceName] string name)

- public static IResourceBuilder<AzureBlobStorageContainerResource> AddBlobContainer(this IResourceBuilder<AzureBlobStorageResource> builder, [ResourceName] string name, string? blobContainerName = null)
+ public static IResourceBuilder<AzureStorageResource> AddBlobContainer(this IResourceBuilder<AzureStorageResource> builder, [ResourceName] string name, string? blobContainerName = null)

- public static IResourceBuilder<AzureQueueStorageResource> AddQueues(this IResourceBuilder<AzureStorageResource> builder, [ResourceName] string name)
+ public static IResourceBuilder<AzureQueueStorageResource> AddQueueService(this IResourceBuilder<AzureStorageResource> builder, [ResourceName] string name)

- public static IResourceBuilder<AzureTableStorageResource> AddTables(this IResourceBuilder<AzureStorageResource> builder, [ResourceName] string name)
+ public static IResourceBuilder<AzureTableStorageResource> AddTableService(this IResourceBuilder<AzureStorageResource> builder, [ResourceName] string name)

+ public static IResourceBuilder<AzureQueueStorageQueueResource> AddQueue(this IResourceBuilder<AzureStorageResource> builder, [ResourceName] string name, string? queueName = null)

Aspire.Azure.Storage.Queues:

- public static void AddAzureQueueClient(this IHostApplicationBuilder builder, string connectionName, Action<AzureStorageQueuesSettings>? configureSettings = null, Action<IAzureClientBuilder<QueueServiceClient, QueueClientOptions>>? configureClientBuilder = null)

+ public static void AddAzureQueueServiceClient(this IHostApplicationBuilder builder, string connectionName, Action<AzureStorageQueuesSettings>? configureSettings = null, Action<IAzureClientBuilder<QueueServiceClient, QueueClientOptions>>? configureClientBuilder = null)

- public static void AddKeyedAzureQueueClient(this IHostApplicationBuilder builder, string name, Action<AzureStorageQueuesSettings>? configureSettings = null, Action<IAzureClientBuilder<QueueServiceClient, QueueClientOptions>>? configureClientBuilder = null)

+ public static void AddKeyedAzureQueueServiceClient(this IHostApplicationBuilder builder, string name, Action<AzureStorageQueuesSettings>? configureSettings = null, Action<IAzureClientBuilder<QueueServiceClient, QueueClientOptions>>? configureClientBuilder = null)

+ public static void AddAzureQueue(this IHostApplicationBuilder builder, string connectionName, Action<AzureStorageQueueSettings>? configureSettings = null, Action<IAzureClientBuilder<QueueClient, QueueClientOptions>>? configureClientBuilder = null)

+ public static void AddKeyedAzureQueue(this IHostApplicationBuilder builder, string name, Action<AzureStorageQueueSettings>? configureSettings = null, Action<IAzureClientBuilder<QueueClient, QueueClientOptions>>? configureClientBuilder = null)

Aspire.Azure.Data.Tables:

- public static void AddAzureTableClient(this IHostApplicationBuilder builder, string connectionName, Action<AzureDataTablesSettings>? configureSettings = null, Action<IAzureClientBuilder<TableServiceClient, TableClientOptions>>? configureClientBuilder = null)
+ public static void AddAzureTableServiceClient(this IHostApplicationBuilder builder, string connectionName, Action<AzureDataTablesSettings>? configureSettings = null, Action<IAzureClientBuilder<TableServiceClient, TableClientOptions>>? configureClientBuilder = null)

- public static void AddKeyedAzureTableClient(this IHostApplicationBuilder builder, string name, Action<AzureDataTablesSettings>? configureSettings = null, Action<IAzureClientBuilder<TableServiceClient, TableClientOptions>>? configureClientBuilder = null)
+ public static void AddKeyedAzureTableServiceClient(this IHostApplicationBuilder builder, string name, Action<AzureDataTablesSettings>? configureSettings = null, Action<IAzureClientBuilder<TableServiceClient, TableClientOptions>>? configureClientBuilder = null)

Aspire.Azure.Storage.Blobs:

- public static void AddAzureBlobClient(this IHostApplicationBuilder builder, string connectionName, Action<AzureStorageBlobsSettings>? configureSettings = null, Action<IAzureClientBuilder<BlobServiceClient, BlobClientOptions>>? configureClientBuilder = null)
+ public static void AddAzureBlobServiceClient(this IHostApplicationBuilder builder, string connectionName, Action<AzureStorageBlobsSettings>? configureSettings = null, Action<IAzureClientBuilder<BlobServiceClient, BlobClientOptions>>? configureClientBuilder = null)

- public static void AddKeyedAzureBlobClient(this IHostApplicationBuilder builder, string name, Action<AzureStorageBlobsSettings>? configureSettings = null, Action<IAzureClientBuilder<BlobServiceClient, BlobClientOptions>>? configureClientBuilder = null)
+ public static void AddKeyedAzureBlobServiceClient(this IHostApplicationBuilder builder, string name, Action<AzureStorageBlobsSettings>? configureSettings = null, Action<IAzureClientBuilder<BlobServiceClient, BlobClientOptions>>? configureClientBuilder = null)

Version

Other (please put exact version in description textbox)

Previous behavior

N/A

New behavior

N/A

Type of breaking change

  • Binary incompatible: Existing binaries might encounter a breaking change in behavior, such as failure to load or execute, and if so, require recompilation.
  • Source incompatible: When recompiled using the new SDK or component or to target the new runtime, existing source code might require source changes to compile successfully.
  • Behavioral change: Existing binaries might behave differently at run time.

Reason for change

Consistency with client names and Azure resource granularity (AddTables() vs AddTableService())

Recommended action

Update obsolete methods to the new names.

Affected APIs

No response


Associated WorkItem - 448817

Metadata

Metadata

Assignees

Labels

📌 seQUESTeredIdentifies that an issue has been imported into Quest.Pri1High priority, do before Pri2 and Pri3area-docsdoc-ideaIndicates issues that are suggestions for new topics [org][type][category]⛓️‍💥 breaking-changeIssues or PRs tracking breaking changes.

Type

Projects

Status

👀 In review

Relationships

None yet

Development

No branches or pull requests

Issue actions