无法在Azure功能中进行http调用

时间:2018-02-27 17:10:03

标签: azure azure-functions apache-httpclient-4.x

我有一个azure函数(f1),它使http调用另一个具有http触发器的azure函数(f2)。两者都是用java编写的,我使用的是简单的HttpClient。这是代码块。

HttpClient client = HttpClientBuilder.create().build();
HttpGet httpRequest = new HttpGet("https://test.azurewebsites.net/api/test");
HttpResponse response =  client.execute(httpRequest);;

我在浏览器中测试了f2,它给出了预期的响应。但是当我运行f1时它继续加载并最终抛出一个错误

  

指定的CGI应用程序遇到错误,服务器终止了该过程。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以使用持久功能中的功能链来完成此操作。

函数链是指以特定顺序执行一系列函数的模式。通常,一个函数的输出需要应用于另一个函数的输入。

值“F1”,“F2”是功能应用程序中其他功能的名称。

public static async Task<object> Run(DurableOrchestrationContext ctx)

    {
        try
        {
            var x = await ctx.CallActivityAsync<object>("F1");
            return  await ctx.CallActivityAsync<object>("F2", x);
        }
        catch (Exception)
        {
            // error handling/compensation goes here
        }
    }

查看此参考文档 -

Durable Functions - Pattern #1: Function chaining