我正在使用 ASP.NET Core (C#, .NET 6) 构建 Azure Web 服务。我有一个 Azure 存储帐户,该存储帐户有两个访问密钥。如果第一个密钥过期或需要更改,应用程序可以无缝切换到第二个密钥,同时操作员更新第一个密钥。
我的应用程序有一个健康检查,并且我想包括对存储帐户的健康检查。我从这篇文章中获得了灵感:https://learn.microsoft.com/en-us/dotnet/architecture/microservices/implement-resilient-applications/monitor-app-health#healthchecks-implementation-in-eshoponcontainers 我编写了以下代码,使用 NuGet 包 AspNetCore.HealthChecks.AzureStorage:
我的应用程序有一个健康检查,并且我想包括对存储帐户的健康检查。我从这篇文章中获得了灵感:https://learn.microsoft.com/en-us/dotnet/architecture/microservices/implement-resilient-applications/monitor-app-health#healthchecks-implementation-in-eshoponcontainers 我编写了以下代码,使用 NuGet 包 AspNetCore.HealthChecks.AzureStorage:
services.AddHealthChecks()
.AddAzureBlobStorage(
$"DefaultEndpointsProtocol=https;AccountName={accountName};AccountKey={key1};EndpointSuffix=core.windows.net",
name: "catalog-storage-check",
tags: new string[] { "catalogstorage" });
问题在于,如果密钥1过期或被吊销,这个健康检查将失败。这不是我想要的。只要至少有2个密钥中的1个可用,我希望健康检查就能成功,并且如果两个密钥都失效,则检查失败。
有没有简单的方法来实现这一点,还是我必须自己编写代码?