【发布时间】:2025-04-01 06:55:01
【问题描述】:
我为EventHubTrigger 开发了一个 Azure Function 应用程序。这是基本代码:
public static class MyEventHubTriggerFunction
{
[FunctionName("MyEventHubTriggerFunction")]
public static async Task Run([EventHubTrigger("EventHubName",
Connection = "EventHubConnectionString")]
string[] eventHubMessages,
TraceWriter log,
ExecutionContext context)
{ ... }
}
这是我的 local.settings.json 文件:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"AzureWebJobsDashboard": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
"EventHubName": "<myEventHubName>",
"EventHubConnectionString": "<myEventHubConnectionString>"
}
}
在部署此应用时,它可以在机器或 Azure 上正常运行。这里必须将 EventHubConnectionString 粘贴到 json 文件中。
是否有任何方法可以使用 MSI 身份验证从 KeyVault 机密中获取该值,并且它应该自动用于在 Run 方法参数中实例化 EventHubTrigger 实例?
我知道如何使用 KeyVaultClient 在函数范围内获取机密,但这里的函数触发器 run 方法本身需要连接字符串,因此我需要一种使用 KeyVault 机密覆盖它的方法。
【问题讨论】:
标签: azure azure-functions azure-eventhub azure-keyvault azure-eventhub-capture