【发布时间】:2022-10-13 23:14:25
【问题描述】:
我有一个通过服务总线接收 msgs 的 Azure 函数(Java 中),我想根据传入消息中的一个属性获取 Cosmos DB 记录的句柄,例如我收到这样的 json 消息: { "id": "foo" },我希望 Cosmos Input 绑定给我相应的 DB 记录。
有很多关于如何使用 http 触发器执行此操作的示例,但我不知道如何使用服务总线触发器。我试过这样的变种:
@FunctionName("ServiceBusListener")
public void serviceBusListener(
@ServiceBusTopicTrigger(
name = "message",
topicName = "mytopic",
subscriptionName = "mysubscription",
connection = "AzureWebJobsServiceBus") String message,
@CosmosDBInput(name = "name",
databaseName = "MyDatabase",
collectionName = "MyCollection",
connectionStringSetting = "CosmosDbConnectionString",
id = "{message.id}") String item,
final ExecutionContext context) {
// do something with item
}
有没有办法做到这一点?
[编辑] 忘了提C# supports doing this。我的猜测是 Azure 只是不支持 Java,因为 C# 支持类似的东西,但 Java 不支持,比如通过输入绑定获取 DocumentClient 或 CosmosClient 的句柄。
【问题讨论】:
标签: java azure-functions