将事件中心绑定用于具有托管标识的 Azure Functions?

Using Event Hubs binding for Azure Functions with managed identities?

我正在尝试查找有关如何在 Function App 绑定中设置连接字符串以便该应用使用托管标识访问事件中心和其他资源的信息。通过获取文档中所述的访问令牌,我能够在其他应用程序中使用托管身份。

这在为资源绑定的连接设置采用配置变量名称的函数应用程序中如何工作?

这在某处记录了吗?

简短的回答应该是我们不能在函数绑定中使用托管身份访问令牌。

Connection requires the connection string to the event hub's namespace for event hub bindings, the token got using Managed identities is invalid. In Azure Function, we use the access token in same the way you have done in other applications, here's the tutorial.

我今天测试了它以连接到服务总线队列。连接字符串是:

Endpoint=sb://<service-bus-resource>.servicebus.windows.net;Authentication=ManagedIdentity;

我在这个博客上找到它: https://blog.darkloop.com/post/using-service-app-managed-identity-with-azure-functions-service-bus-bindings。我不需要做任何特别的事情,因为我的项目正在使用 Microsoft.Azure.ServiceBus 4.1.1.

但请查看此博客中的评论 post - 有人说它不适用于消费计划。这里提到了另一个潜在的问题: https://feedback.azure.com/forums/355860-azure-functions/suggestions/37907848-support-for-azure-managed-service-identities-in-ev

Please note that the behavior captured in the post by Arturo was considered unintentional from the SDK team and removed in a later version update. We are working with them to make this formally supported, but right now the instructions in that post may no longer work.

所以我不确定是否应该使用它。

对托管身份的全面支持现在处于测试阶段 https://devblogs.microsoft.com/azure-sdk/introducing-the-new-azure-function-extension-libraries-beta/ 利用 Azure.Identity 库