Sam*_*Sam 5 azure-keyvault azure-functions
我按照这篇文章在我的 Azure Functions 应用程序中实现了 Azure Key Vault:https : //medium.com/statuscode/getting-key-vault-secrets-in-azure-functions-37620fd20a0b
如文章中所述,我使用的是托管服务标识 (MSI),但似乎无法从 Key Vault 读取值。以下是应该读取值的行。
var myValue = (await kvClient.GetSecretAsync(Environment.GetEnvironmentVariable("documentDbkey"))).Value;
Run Code Online (Sandbox Code Playgroud)
我应该在key我的条目中使用 iedocumentDb还是以 开头的版本 ID bf2550f4e?
这是错误:
执行函数时出现异常:IngridNotificationsFunction Microsoft.Azure.WebJobs.Host.FunctionInvocationException:执行函数时出现异常:IngridNotificationsFunction ---> System.ArgumentNullException:值不能为空。参数名称:secretIdentifier at async Microsoft.Azure.KeyVault.KeyVaultClientExtensions.GetSecretAsync(??)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
在异步 Ingrid.Notifications.IngridNotifications.Initialize() 在 C:\Users\Sam\Documents\Visual Studio 2017\Projects\Ingrid.Notifications\Ingrid.Notifications\IngridNotifications.cs 处:83 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () 在 C:\Users\Sam\Documents\Visual Studio 2017\Projects\Ingrid.Notifications\Ingrid.Notifications\IngridNotifications.cs 的异步 Ingrid.Notifications.IngridNotifications.Run(String myQueueItem) :38 在 System.Runtime.ExceptionServices .ExceptionDispatchInfo.Throw() 在异步 Microsoft.Azure.WebJobs.Host.Executors.VoidTaskMethodInvoker2.InvokeAsync[TReflected,TReturnType](TReflected instance,Object[] arguments) at C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\VoidTaskMethodInvoker.cs : 20 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at async Microsoft.Azure.WebJobs.Host.Executors.FunctionInvoker2.InvokeAsync[TReflected,TReturnValue](Object instance,Object[] arguments) 在 C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Executors\FunctionInvoker.cs : 63 在系统.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在异步 Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.InvokeAsync(IFunctionInvoker invoker,ParameterHelper parameterHelper,CancellationTokenSource timeoutTokenSource,CancellationTokenSource functionCancellationTokenSource,throwOnTimeout,TimeIFunctionInterval instance) \projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Hos...
我无法从 Azure KeyVault 读取值的原因可能是什么?
System.ArgumentNullException:值不能为空
根据异常,它表示Environment.GetEnvironmentVariable("documentDbkey")为空。
我无法从 Azure KeyVault 读取值的原因可能是什么?
如果我们想使用Environment.GetEnvironmentVariable("documentDbkey")我们需要配置 azure 函数应用程序设置以https://{yourkeyvalue}.vault.azure.net/Secrets/{yourSecretName}在您的情况下添加具有值的键 documentDbkey 。
更新:
您可以直接使用以下代码来获取秘密。
kvClient.GetSecretAsync("https://{yourkeyvalue}.vault.azure.net/Secrets/{yourSecretName}")?.Value
Run Code Online (Sandbox Code Playgroud)
在文章中还提到他使用应用程序设置来存储密钥库机密 id。
您会注意到,在这种情况下,我使用环境变量(应用程序设置)作为 Key Vault 机密 ID,但它本身不是机密?—?只是存储机密的位置
| 归档时间: |
|
| 查看次数: |
3942 次 |
| 最近记录: |