Azure 函数输出绑定(bind)事件网格托管标识

标签 azure azure-managed-identity azure-eventgrid

我正在尝试编写一个具有事件网格输出绑定(bind)的 Azure 函数,如何将其配置为使用管理身份而不是主题 key ?

    [Function("TestEventGrid")]
    [EventGridOutput(TopicEndpointUri = "MyEventGridTopicUriSetting", TopicKeySetting = "MyEventGridTopicKeySetting")]
    public async Task<MyEvent> Run([HttpTrigger(AuthorizationLevel.Anonymous, "post")] HttpRequestData req)
    {
        return await Task.FromResult(new MyEvent
        {
            Id = "123",
            Subject = "sub",
            EventType = "myevent",
            EventTime = DateTime.Now,
            Data = new TestData(),
            DataVersion = "1.0"
        });
    }

最佳答案

使用 EventGridAsyncCollector 代替 EventGridAttribute,它位于 nextdoor :

enter image description here

EventGridAsyncCollectorthe scenes 后面使用 EventGridPublisherClient :

public EventGridPublisherClient(System.Uri endpoint, Azure.AzureKeyCredential credential) { }

Azure.AzureKeyCredential 凭据 就是您正在寻找的内容。

更新: 您应该完全放弃 EventGridAttribute 并转而使用较低级别的 EventGridPublisherClient。以下是如何使用它的链接:https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/eventgrid/Azure.Messaging.EventGrid#authenticate-using-azure-active-directory

关于Azure 函数输出绑定(bind)事件网格托管标识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73815662/

相关文章:

Azure 根据向逻辑应用发出的请求创建一个驱动器文件

c# - 使用 C# mono 的 WindowsAzure.Storage

azure - 将数据从 Azure Data Lake Store 加载到 SQL 数据仓库

c# - Azure Function(使用 DI)无法删除 "/api"路由前缀

azure - 调用 Get-AzADGroupMember 时权限不足,无法完成操作

powershell - 术语 'New-AzureRmUserAssignedIdentity' 未被识别为名称

azure - 在函数端点上使用 ARM 创建 Eventgrid 订阅

c# - 具有用户分配的托管标识的 Azure 应用服务使应用程序崩溃

java - 如何推迟事件触发/接收

azure - 如何使用 Azure 事件网格传递到 GCP 的事件