Azure函数-是否返回没有输出绑定的值?这可能吗?

时间:2019-06-14 09:42:46

标签: azure azure-functions

我是Azure Functions的新手,并且我已经编写了Azure函数以在Azure中为我创建新资源。该函数返回一个包装在创建的ive类型中的ID。

这样做的主要原因是我编写了集成测试,该测试基于从函数返回的ID进行一些检查和拆卸过程。

 [FunctionName("SomeAzFunction")]
        public async Task<MyNewReturnType> Run(
            [ServiceBusTrigger("%topic-name%", "some-subscription", Connection = "service-bus-connection-string")]
            string message,
            ILogger log)

但是,在部署时,出现以下错误。如果Azure函数具有返回值,是否必须具有输出绑定?还是我无法正确使用Azure功能?

Function (SomeAzFunction) Error: Microsoft.Azure.WebJobs.Host: Error indexing method 'SomeAzFunction'. Microsoft.Azure.WebJobs.Host: Cannot bind parameter '$return' to type MyNewReturnType&. Make sure the parameter Type is supported by the binding. If you're using binding extensions (e.g. Azure Storage, ServiceBus, Timers, etc.) make sure you've called the registration method for the extension(s) in your startup code (e.g. builder.AddAzureStorage(), builder.AddServiceBus(), builder.AddTimers(), etc.).

1 个答案:

答案 0 :(得分:4)

我认为您的做法略有错误。

因此,您有一个使用来自服务总线的消息的功能。 您进行了一些处理,然后返回一个值,您希望它在哪里返回? 如果要将消息放回服务总线,则可以使用服务总线输出绑定,请参阅可用的绑定here

或者您可以创建一个SubscriptionClient/TopicClient并将消息手动发布到该订阅/主题。

如果只返回一个值供集成测试验证,则建议您将代码移到函数调用并测试的单独类中。