Package reference page maintained from the source documentation in src/HealthChecks.Azure.KeyVault.Secrets.

Azure KeyVault Secrets Health Check

This health check verifies the ability to communicate with Azure Key Vault Secrets. It uses the provided SecretClient to get configured secret. When the connection to the service itself can be made, but secret is not found, it returns HealthStatus.Healthy status.

Defaults

By default, the SecretClient instance is resolved from service provider. AzureKeyVaultSecretsHealthCheckOptions by default uses "AzureKeyVaultSecretsHealthCheck" secret name and does not try to create the secret when it's not found.

void Configure(IHealthChecksBuilder builder)
{
    builder.Services.AddSingleton(sp => new SecretClient(new Uri("azure-key-vault-uri"), new DefaultAzureCredential()));
    builder.AddHealthChecks().AddAzureKeyVaultSecrets();
}

Customization

You can additionally add the following parameters:

void Configure(IHealthChecksBuilder builder)
{
    builder.Services.AddSingleton(sp => new SecretClient(new Uri("azure-key-vault-uri"), new DefaultAzureCredential()));
    builder.AddHealthChecks().AddAzureKeyVaultSecrets(
        optionsFactory: sp => new AzureKeyVaultSecretsHealthCheckOptions()
        {
            SecretName = "demo"
        });
}

Performance

When the secret is not found, the secret client throws RequestFailedException. The health check catches it, but it's expensive in terms of performance.

That is why it's recommended to create the secret before using the health check. It can be done by using AzureKeyVaultSecretsHealthCheckOptions.CreateWhenNotFound, but it requires secret set permissions. Such permissions should not be assigned just for the purpose of using this health check!

For more information about credentials types please see Azure TokenCredentials