Azure功能用于监控边缘模块运行状况

问题描述 投票:0回答:1

我想创建一个azure函数来监视iothub中边缘模块的运行状况。通过检索模块的双属性,我将能够做到这一点。事实上,我有一个C#代码,它给出了所需的结果。但我对天蓝色功能的概念很新,我仍然坚持如何使用它们。以下是我用来检索模块双胞胎属性的代码:

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-active-directory azure-functions azure-application-insights health-monitoring azure-functions-core-tools
1个回答
1
投票

这取决于您要使用的触发器(运行函数的条件)。以下是基于Timer的功能示例:

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 Functions的应用程序设置中设置ModuleConnectionStringTransportType的值(例如,通过门户网站)。

附:欢迎来到Stack Overflow。您的问题对于本网站的标准来说有点宽泛,因为它只是询问“我该怎么做”,而不是提供您已经尝试过的代码/方法。下一次,请访问Azure Functions的入门示例,并在提出问题之前尝试将代码应用于他们。

© www.soinside.com 2019 - 2024. All rights reserved.