.net 如何从计时器触发的azure函数调用http触发的azure函数

snz8szmq  于 2023-01-27  发布在  .NET
关注(0)|答案(2)|浏览(297)

有一个计时器函数,在它工作的中间应该调用http triggered(post request)函数。怎么做?持久函数链模式会有帮助吗?如何将参数(在requestBody中)传递给被调用的函数?pidoss.如果我在这件事上表达得不识字,我道歉。
研究了链接模式的实现。在示例中只有一个活动触发器类型的函数。

bakd9h0s

bakd9h0s1#

如何操作?-您将从计时器触发函数向http触发函数提交一个WebRequest
持久的函数链模式会有帮助吗?-可能不会,到目前为止你在问题陈述中提到的任何东西都不会让我相信改变你的模式会解决你的任何问题。
如何将参数(在requestBody中)传递给被调用的函数?-webrequest的文档提供了一些示例

4c8rllxm

4c8rllxm2#

正如@Oxymoron建议的那样,您必须使用Web请求对象来发布Http触发器URL/函数,并且您可以使用一种持久函数模式从计时器触发器调用http触发器函数。我按照@Thiago Custodio SO-Thread的说明操作,如下所示:

namespace FunctionApp45
    {
        public class Function1
        {
            [FunctionName("Function1")]
            public async Task RunAsync([TimerTrigger("*/30 * * * * *")]TimerInfo myTimer, ILogger log)
            {
                log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
    
                var url = "https://www.google.co.in/";
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.AutomaticDecompression = DecompressionMethods.GZip;
    
                using (HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync())
                using (Stream stream = response.GetResponseStream())
                using (StreamReader reader = new StreamReader(stream))
                {
                    var htmlrawdata = reader.ReadToEnd();
                    log.LogInformation(htmlrawdata);
                }
            }
        }
    }

相关问题