首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于监控边缘模块运行状况的Azure函数

用于监控边缘模块运行状况的Azure函数
EN

Stack Overflow用户
提问于 2018-09-03 13:05:57
回答 1查看 69关注 0票数 0

我想创建一个azure函数来监控iothub中我的边缘模块的运行状况。通过检索模块的孪生属性,我将能够做到这一点。事实上,我有一个C#代码,它可以给出想要的结果。但我对azure函数的概念还很陌生,我被困在如何使用它们的问题上。下面是我用来检索模块孪生属性的代码:

代码语言:javascript
复制
public class TwinSample
{
    private ModuleClient _moduleClient;

    public TwinSample(ModuleClient moduleClient)
    {
        _moduleClient = moduleClient ?? throw new ArgumentNullException(nameof(moduleClient));
    }

    public async Task<string> RunSampleAsync()
    {

        Console.WriteLine("Retrieving twin...");
        Twin twin = await _moduleClient.GetTwinAsync().ConfigureAwait(false);

        Console.WriteLine("\tInitial twin value received:");

        Console.WriteLine($"\t{twin.ToJson()}");
        return twin.ToJson();
    }


}

 public static void Main(string[] args)
    {
        if (string.IsNullOrEmpty(s_moduleConnectionString) && args.Length > 0)
        {
            s_moduleConnectionString = args[0];
        }

            ModuleClient moduleClient = ModuleClient.CreateFromConnectionString(s_moduleConnectionString, s_transportType);

            var sample = new TwinSample(moduleClient);
            Sample.RunSampleAsync().GetAwaiter().GetResult();
            Console.ReadLine();


    }

谁能给我解释一下如何在azure函数中使用相同的功能?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-03 13:28:26

这取决于您要使用的触发器(运行函数的条件)。下面是一个基于计时器的函数示例:

代码语言:javascript
复制
public static class MyApp 
{
    [FunctionName("TimerTriggerCSharp")]
    public static async Task Run([TimerTrigger("0 */5 * * * *")]TimerInfo myTimer)
    {
        var moduleConnectionString = Environment.GetEnvironmentVariable("ModuleConnectionString", EnvironmentVariableTarget.Process);
        var transportType = Environment.GetEnvironmentVariable("TransportType", EnvironmentVariableTarget.Process);

        ModuleClient moduleClient = ModuleClient.CreateFromConnectionString(moduleConnectionString, transportType);

        var sample = new TwinSample(moduleClient);
        await sample.RunSampleAsync();
    }
}

TwinSample的定义可以在您的原始代码中重用。

您需要在Azure函数的应用程序设置中设置ModuleConnectionStringTransportType的值(例如,通过门户)。

附言:欢迎来到Stack Overflow。你的问题对于这个站点的标准来说有点宽泛,因为它只是问“我如何做到这一点”,而不是给出你已经尝试过的代码/方法。下一次,请浏览Azure函数的入门示例,并尝试在提出问题之前将您的代码应用于它们。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52143424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档