BB7*_*788 5 azure-keyvault azure-functions
该函数永远不会读取最新版本的秘密。它总是读取它配置使用的第一个,即版本化的。即使在重新启动该函数或重新发布该函数后,它也始终会读取其首次配置使用的版本秘密。
创建了一个具有版本化 Key Vault 参考形式的函数:
TheSecret
@Microsoft.KeyVault(SecretUri=https://name.vault.azure.net/secrets/TheSecret/__version__)
Run Code Online (Sandbox Code Playgroud)
并在函数中:
if (!int.TryParse(Environment.GetEnvironmentVariable("TheSecret"), out int theSecret))
{
theSecret = 10;
}
Run Code Online (Sandbox Code Playgroud)
该函数第一次运行时会检索密钥的特定版本。
在 Key Vault 中创建了新版本TheSecret,并将功能应用程序配置更改为非版本化类型:
TheSecret
@Microsoft.KeyVault(SecretUri=https://name.vault.azure.net/secrets/TheSecret/)
Run Code Online (Sandbox Code Playgroud)
小智 11
由于您尚未指定版本,因此它会使用键值中的最新版本。根据文档,当有新版本可用时(例如发生轮换事件),应用程序将自动更新并在一天内开始使用最新版本。对应用程序进行的任何配置更改都将导致所有引用的机密立即更新为最新版本。
可通过两种方式加载 Azure Key Vault Secret(在 Function 应用中引用)的新值:
如文档中所述,自动(非强制)24 小时发生。
配置更新(强制),在执行站点更新时强制获取最新机密。最简单的方法是更新“设置\配置”中的任何设置,然后在此边栏选项卡上“保存”。这也会导致重启。更多详细信息请参见此处。
小智 -1
关于可以尝试的事情,这里有一些;
@Microsoft.KeyVault(VaultName={vault_name};SecretName={secret_name})如果所有这些都失败,请禁用系统 msi,重新启用并确认在密钥保管库策略中分配秘密获取权限。(请注意,执行此操作后,您必须停止/启动功能应用程序)
| 归档时间: |
|
| 查看次数: |
3226 次 |
| 最近记录: |