应该如何创建 BlobServiceClient?

How should BlobServiceClient be created?

BlobServiceClient 应该以类似 HttpClient 的模式创建,作为一个有效的单例,还是应该按请求完成?

我的直觉表明它应该是一个单例,但我找不到任何明确的暗示。我目前有一些这样的代码:

public class MyAzureThing
{
    private readonly BlobServiceClient blobServiceClient;

    public MyAzureThing(Uri baseUri)
    {
        blobServiceClient = new BlobServiceClient(baseUri, new DefaultAzureCredential());
    }

    public async Task CreateContainerAsync(string name)
    {
        var containerClient = blobServiceClient.GetBlobContainerClient(name);
        
        // other logic....
    }
}

我的假设是,这是首选的做法,BlobServiceClient 是在此范围内创建的,而我的容器客户端是在我需要时创建的。谁能指出这是最佳实践还是某种反模式?

似乎建议 Azure SDK 客户端 v12 应该是单例。所有实例显然都是线程安全的:https://devblogs.microsoft.com/azure-sdk/lifetime-management-and-thread-safety-guarantees-of-azure-sdk-net-clients/