HealthChecks.Azure.Storage.Blobs is the health check package for Blobs.
$ dotnet add package AspNetCore.HealthChecks.Azure.Storage.BlobsThis health check verifies the ability to communicate with Azure Blob Storage. It uses the provided BlobServiceClient to get first or configured blob container.
By default, the BlobServiceClient instance is resolved from service provider. AzureBlobStorageHealthCheckOptions does not provide any specific container name, so the health check fetches just first container.
void Configure(IHealthChecksBuilder builder)
{
builder.Services.AddSingleton(sp => new BlobServiceClient(new Uri("azure-blob-storage-uri"), new DefaultAzureCredential()));
builder.AddHealthChecks().AddAzureBlobStorage();
}
You can additionally add the following parameters:
clientFactory: A factory method to provide BlobServiceClient instance.optionsFactory: A factory method to provide AzureBlobStorageHealthCheckOptions instance. It allows to specify the container name.name: The health check name. The default is azure_blob_storage.failureStatus: The HealthStatus that should be reported when the health check fails. Default is HealthStatus.Unhealthy.tags: A list of tags that can be used to filter sets of health checks.timeout: A System.TimeSpan representing the timeout of the check.void Configure(IHealthChecksBuilder builder)
{
builder.Services.AddSingleton(sp => new BlobServiceClient(new Uri("azure-blob-storage-uri"), new DefaultAzureCredential()));
builder.AddHealthChecks().AddAzureBlobStorage(
optionsFactory: sp => new AzureBlobStorageHealthCheckOptions()
{
ContainerName = "demo"
});
}
In the prior releases, was a part of package. It had a dependency on not just , but also and . The packages have been split to avoid bringing unnecessary dependencies. Moreover, was letting the users specify how should be created (from raw connection string or from endpoint uri and managed identity credentials), at a cost of maintaining an internal, static client instances cache. Now the type does not create client instances nor maintain an internal cache and (please see for more details). Since Azure SDK treating clients as singletons and client instances can be expensive to create, it's recommended to register a singleton factory method for Azure SDK clients. So the clients are created only when needed and once per whole application lifetime.
AzureBlobStorageHealthCheckHealthChecks.AzureStorageAzure.Storage.BlobsAzure.Storage.QueuesAzure.Storage.Files.SharesAzureBlobStorageHealthCheckBlobServiceClientBlobServiceClient