public async Task <HealthCheckResult> CheckHealthAsync(HealthCheckContext context, CancellationToken cancellationToken = default) { try { await _testProvider.PerformTestAsync(_client, _configuration, _blobContainerConfiguration, cancellationToken); return(HealthCheckResult.Healthy("Successfully connected to the blob data store.")); } catch (Exception ex) { _logger.LogWarning(ex, "Failed to connect to the blob data store."); return(HealthCheckResult.Unhealthy("Failed to connect to the blob data store.")); } }
/// <inheritdoc /> public async Task OpenBlobClientAsync(BlobServiceClient client, BlobDataStoreConfiguration configuration, BlobContainerConfiguration blobContainerConfiguration) { EnsureArg.IsNotNull(client, nameof(client)); EnsureArg.IsNotNull(configuration, nameof(configuration)); EnsureArg.IsNotNull(blobContainerConfiguration, nameof(blobContainerConfiguration)); _logger.LogInformation("Opening blob client connection to container {containerName}", blobContainerConfiguration.ContainerName); try { await _testProvider.PerformTestAsync(client, configuration, blobContainerConfiguration); _logger.LogInformation("Established blob client connection to container {containerName}", blobContainerConfiguration.ContainerName); } catch (Exception e) { _logger.LogCritical(e, "Failed to connect to blob client container {containerName}", blobContainerConfiguration.ContainerName); throw; } }