本地开发Azure Function:托管身份订阅Cosmos Change Feed遇阻
本地运行Cosmos Change Feed触发函数的问题
我有一段订阅Cosmos Change Feed的Azure Functions代码:
[FunctionName("CosmosDB_ChangeFeed")] public void Cosmos_ChangeFeed([CosmosDBTrigger( databaseName:"%databaseName%", containerName:"%containerName%", LeaseContainerName:"%leaseContainerName%", Connection = "CosmosDB")] IReadOnlyList<PocoItem>input)
这段代码在Azure云上运行完全正常,但本地开发环境启动时遇到了问题,想请教如何解决。
背景信息
代码使用的是Microsoft.Azure.WebJobs.Extensions.CosmosDB最新版本(4.2.0),该版本支持通过托管身份访问Cosmos DB,要求托管身份必须被分配Cosmos DB内置数据参与者角色。同时,CosmosDBTrigger的Connection属性需要在连接字符串配置中按特定格式设置(配置界面参考:
)。
本地运行遇到的错误
我已经将个人身份分配了Cosmos DB内置数据参与者角色,但启动本地函数时抛出以下异常:
Exception: Azure.Identity.CredentialUnavailableException: ManagedIdentityCredential authentication unavailable. No Managed Identity endpoint found
另外还有一个疑问:该扩展是否支持用户分配的托管身份?我没找到相关官方文档,之前在Azure部署的函数中尝试配置也没成功。
参考资料(原英文资源对应中文主题)
- Azure Cosmos DB Functions扩展配置视频教程
- Azure Cosmos DB新Functions扩展底层原理技术博客
- Azure Cosmos DB RBAC权限配置官方文档
内容的提问来源于stack exchange,提问作者SuttyHoo
相关产品推荐
相关产品推荐

