Azure active directory 用于监视边缘模块运行状况的Azure函数

Azure active directory 用于监视边缘模块运行状况的Azure函数,azure-active-directory,azure-functions,azure-application-insights,health-monitoring,azure-functions-core-tools,Azure Active Directory,Azure Functions,Azure Application Insights,Health Monitoring,Azure Functions Core Tools,我想创建一个azure函数来监控iothub中边缘模块的运行状况。通过检索模块的双属性,我将能够做到这一点。 事实上,我有一个C代码,它给出了期望的结果。但我对azure函数的概念非常陌生,我一直在研究如何使用它们。 以下是我用于检索模块twin属性的代码: public class TwinSample { private ModuleClient _moduleClient; public TwinSample(ModuleClient moduleClient)

我想创建一个azure函数来监控iothub中边缘模块的运行状况。通过检索模块的双属性,我将能够做到这一点。 事实上,我有一个C代码,它给出了期望的结果。但我对azure函数的概念非常陌生,我一直在研究如何使用它们。 以下是我用于检索模块twin属性的代码:

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();


    }
public类示例
{
私有模块客户端_模块客户端;
公共TwinSample(模块客户端模块客户端)
{
_moduleClient=moduleClient??抛出新的ArgumentNullException(nameof(moduleClient));
}
公共异步任务runSamPleaseSync()
{
控制台。WriteLine(“检索双胞胎…”);
Twin Twin=await _moduleClient.GetTwinAsync().ConfigureAwait(false);
Console.WriteLine(“\t收到的初始双值:”);
WriteLine($“\t{twin.ToJson()}”);
返回twin.ToJson();
}
}
公共静态void Main(字符串[]args)
{
if(string.IsNullOrEmpty(s_moduleConnectionString)&&args.Length>0)
{
s_moduleConnectionString=args[0];
}
ModuleClient ModuleClient=ModuleClient.CreateFromConnectionString(s_moduleConnectionString,s_transportType);
var样本=新的TwinSample(moduleClient);
Sample.RunSampleAsync().GetAwaiter().GetResult();
Console.ReadLine();
}
有人能告诉我如何在azure function中使用相同的功能吗


谢谢。

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

公共静态类MyApp
{
[函数名(“TimerTriggerCSharp”)]
公共静态异步任务运行([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样本=新的TwinSample(moduleClient);
等待sample.runSamPleaseSync();
}
}
TwinSample的定义可以从原始代码中重用

您需要在Azure功能的应用程序设置中(例如通过门户)设置
ModuleConnectionString
TransportType
的值

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