如何在 Azure Function 中调用两个 rest API?

How to call two rest APIs in a Azure Function?

我正在尝试在 Azure 函数中调用两个 rest APIs(Azure Web 服务 APIs)。我写了下面的代码,但是当我尝试 运行 它时,第一个 API 只被执行,而第二个则没有。 如果第一个 API 获得 200 Ok 的响应状态,那么逻辑应该是,它应该继续调用下一个 API。

namespace FunctionChainingApp
{
    public static class FunctionChaining
    {

        [FunctionName("FunctionChaining")]
        public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]HttpRequestMessage req, ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");


            try
            {
                // Call Your  API
                HttpClient abcdeClient = new HttpClient();
                HttpRequestMessage abcdeRequest = new HttpRequestMessage(HttpMethod.Get, string.Format("https://abcde.azurewebsites.net/api/abcde/GetabcdeDetails"));

                //Read Server Response
                HttpResponseMessage abcdeResponse = await abcdeClient.SendAsync(abcdeRequest);
                bool abcdeStatusCode200 = await abcdeResponse.Content.ReadAsAsync<bool>();

                if (abcdeStatusCode200 == true)
                {
                    // Call Your  API
                    HttpClient vwxyzClient = new HttpClient();
                    HttpRequestMessage vwxyzRequest = new HttpRequestMessage(HttpMethod.Get, string.Format("https://vwxyz.azurewebsites.net/api/vwxyz/GetvwxyzDefaultDetails"));

                    //Read Server Response
                    HttpResponseMessage vwxyzResponse = await vwxyzClient.SendAsync(vwxyzRequest);
                    bool vwxyzStatusCode200 = await vwxyzResponse.Content.ReadAsAsync<bool>();
                }
                else
                {
                    // Call Your  API
                    abcdeRequest = new HttpRequestMessage(HttpMethod.Get, string.Format("https://abcde.azurewebsites.net/api/abcde/GetabcdeDetails"));
                }
                return req.CreateResponse(HttpStatusCode.OK);

            }
            catch (Exception ex)
            {
                return req.CreateResponse(HttpStatusCode.OK, "The Called Scheduler Failed : {0}", string.Format(ex.Message));
            }
        }
    }

    public class ResponseModel
    {
        public bool abcdeStatusCode200 { get; set; }
        public bool vwxyzStatusCode200 { get; set; }
    }
}

需要将这两个函数分开,在DurableOrchestrationClient

内调用
 var output = new List<string>();

 output.Add(await context.CallActivityAsync<string>("CallAPI1", "test2019"));

 output.Add(await context.CallActivityAsync<string>("CallAPI2", "test2"));

EXAMPLE