You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为带Event Grid输出绑定的Azure Function配置托管身份替代主题密钥

使用托管身份配置Azure函数的Event Grid输出绑定

要把你的Azure函数Event Grid输出绑定从主题密钥切换为托管身份,按以下步骤操作:

1. 给函数应用启用托管身份

打开Azure门户里的函数应用,左侧菜单找「身份」选项:

  • 选「系统分配」标签,把状态设为「开启」,点击保存。系统会自动生成对应的服务主体。
  • 如果用用户分配的托管身份,就选「用户分配」标签,添加已创建的身份到函数应用。

2. 给托管身份分配Event Grid发送权限

打开你的Event Grid主题资源,进入「访问控制(IAM)」页面:

  • 点击「添加」→「添加角色分配」。
  • 角色选「Event Grid 数据发送者」,这个角色刚好满足向主题发事件的权限。
  • 成员类型选「托管身份」,然后搜索并选中函数应用的托管身份,完成添加。

3. 修改函数代码

直接移除EventGridOutput属性里的TopicKeySetting参数就行,托管身份认证不需要密钥:

[Function("TestEventGrid")]
[EventGridOutput(TopicEndpointUri = "MyEventGridTopicUriSetting")]
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"
    });
}

4. 配置应用设置

确保函数应用的应用设置里,MyEventGridTopicUriSetting的值是Event Grid主题的完整端点URL,格式大概是:https://<你的主题名称>.<区域>.eventgrid.azure.net/api/events。

额外说明

  • 如果用的是用户分配托管身份,还要给函数应用加一个应用设置AzureWebJobsEventGridClientId,值填用户分配身份的客户端ID,这样绑定才会用指定的身份去认证。
  • 权限分配后可能需要等几分钟才会生效,如果测试时遇到认证错误,先等一会儿再重试。

内容的提问来源于stack exchange,提问作者Gary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 13:41:12