-->

在Azure中KeyVault获得明显的延迟(Apparent delay in Azure Key

2019-09-30 02:09发布

我们有一个访问Azure的KeyVault基于Azure的ASP.NET Web服务。 我们看到两个实例中,在第一方法“挂起”尝试,然后工作一分钟左右后。

在这两种情况下,发生KeyVault访问。 在这两种情况下,这个问题开始的时候我们开始使用这些方法的KeyVault。

我们已经在第一时间做了非常仔细记录,并不能看到在我们的代码其他任何可能导致挂起。 该KeyVault访问是主要犯罪嫌疑人。

此外,如果我们运行从本地服务器上的应用程序(从Visual Studio),该KeyVault接入工程的“第一次尝试”罚款。 它只有当它在生产中在Azure上运行,并且只能在“第一次尝试”生产的“挂起”错误。

通过“挂”我的意思是,在一个实例,它是由外部API触发,它需要至少60秒(我们可以告诉大家,因为外部API超时)。在其他情况下,它是由一个页面请求触发,几分钟可以通过和页面只是旋转,在这一点上,我们假设DB请求或别的东西已超时。

当我说“一分钟左右后”,这是因为快,因为我们已经超时重试。

是否有某种问题或功能的其中KeyVault需要进行“热身”它工作在第一先试?

更新:我更仔细地查看代码,我看到至少有一对夫妇在这里我们可以插入更记录获得失败发生的更精确的图片的地方。 我要做到这一点,然后我就回来向我报告。

更新:请参见下面回答 - 主要新手的错误,已得到纠正。

Answer 1:

根据你的描述,似乎它会费Web应用程序并不总是上启用

默认情况下,如果他们闲置了一段时间的网络应用被卸载 。 这使系统节约资源。 在基本或标准模式,您可以启用始终在保持应用程序加载的所有时间

如果可能的话,请有尝试启用始终在再次尝试。



Answer 2:

发现问题和解决方案。

重点保管箱存取需要从一个异步任务调用,因为有一个多秒的延迟。

private async Task<string> GetKeyVaultSecretValue(varSecretParms) {

我不明白的底层技术,但是,很显然,如果呼叫从一个标准的代码序列中,服务器不喜欢等待,所以线程放弃/暂停。



文章来源: Apparent delay in Azure KeyVault access