小编Yuh*_*his的帖子

如何在 Azure Function 中使用 Azure 托管标识通过触发器访问服务总线?

我在 Azure 中创建了一个 ServiceBus 命名空间,以及一个主题和一个订阅。我还有一个简单的 Azure 版本 1 函数,它触发 ServiceBus 中接收到的主题,如下所示:

[FunctionName("MyServiceBusTriggerFunction")]
public static void Run([ServiceBusTrigger("myTopic", "mySubscription", Connection = "MyConnection")]string mySbMsg, TraceWriter log)
{
    log.Info($"C# ServiceBus topic trigger function processed message: {mySbMsg}");
}
Run Code Online (Sandbox Code Playgroud)

当我使用主题的共享访问策略在函数应用程序设置中定义连接字符串时,该函数可以很好地触发 ServiceBus 中的主题,如下所示:

Endpoint=sb://MyNamespace.servicebus.windows.net/;SharedAccessKeyName=mypolicy;SharedAccessKey=UZ...E0=
Run Code Online (Sandbox Code Playgroud)

现在,我想使用托管服务标识 (MSI) 来访问 ServiceBus,而不是共享访问密钥。根据这个(https://docs.microsoft.com/en-us/azure/active-directory/managed-service-identity/services-support-msi)应该是可能的,除非我误解了一些东西。我还没有设法让它工作。

我试过的是

  • 在 Azure 门户中为我的函数设置托管服务标识“开启”
  • 为 Azure 门户中 ServiceBus 访问控制部分中的函数赋予所有者角色
  • 像这样设置 MyFunction 的连接字符串:Endpoint=sb://MyNamespace.servicebus.windows.net/

该功能未在此设置中触发,所以我错过了什么或我做错了什么?如果您有任何建议可以帮助我走得更远,我将不胜感激。谢谢。

triggers azureservicebus azure-functions azure-managed-identity

9
推荐指数
2
解决办法
2021
查看次数

是否可以配置Azure C#函数DocumentDB属性参数?

我正在构建一个Azure Http触发的C#函数,其输出绑定到Cosmos DB.我的函数定义是这样的:

[FunctionName("HttpTriggerFunction")]
public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "post", Route = "myroute")]HttpRequestMessage req,
                                              [DocumentDB("database", "collection", ConnectionStringSetting = "CosmosDBConnection")] IAsyncCollector<dynamic> document,
                                              TraceWriter log)
Run Code Online (Sandbox Code Playgroud)

这很好用.

但是,我希望能够在DocumentDB属性中配置数据库集合名称,但是如果我尝试这样的话:

[DocumentDB(ConfigurationManager.AppSettings["DatabaseName"], ConfigurationManager.AppSettings["CollectionName"], ConnectionStringSetting = "CosmosDBConnection")]
Run Code Online (Sandbox Code Playgroud)

然后Visual Studio给我一个编译错误:

CS0182属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式

有没有办法配置这些DocumentDB属性参数?

c# azure azure-functions azure-cosmosdb

0
推荐指数
1
解决办法
431
查看次数