Stream Analytics-feladatmonitor programozott létrehozása

Ez a cikk bemutatja, hogyan engedélyezheti a Stream Analytics-feladatok monitorozását. A REST API-k, az Azure SDK vagy a PowerShell használatával létrehozott Stream Analytics-feladatok alapértelmezés szerint nem engedélyezve vannak a monitorozással. Manuálisan engedélyezheti az Azure Portalon a feladat Monitorozás lapján, majd az Engedélyezés gombra kattintva, vagy automatizálhatja ezt a folyamatot a jelen cikk lépéseinek követésével. A monitorozási adatok megjelennek az Azure Portal Metrikák területén a Stream Analytics-feladathoz.

Előfeltételek

A folyamat megkezdése előtt a következő előfeltételekkel kell rendelkeznie:

Projekt létrehozása

  1. Hozzon létre egy Visual Studio C# .NET-konzolalkalmazást.

  2. A NuGet-csomagok telepítéséhez futtassa az alábbi parancsokat a Csomagkezelő konzolon. Az első az Azure Stream Analytics Management .NET SDK. A második az Azure Monitor SDK, amely a figyelés engedélyezésére szolgál. Az utolsó a Hitelesítéshez használt Microsoft Entra-ügyfél.

    Install-Package Microsoft.Azure.Management.StreamAnalytics
    Install-Package Microsoft.Azure.Insights -Pre
    Install-Package Microsoft.IdentityModel.Clients.ActiveDirectory
    
  3. Adja hozzá a következő alkalmazás Gépház szakaszt az App.config fájlhoz.

    <appSettings>
      <!--CSM Prod related values-->
      <add key="ResourceGroupName" value="RESOURCE GROUP NAME" />
      <add key="JobName" value="YOUR JOB NAME" />
      <add key="StorageAccountName" value="YOUR STORAGE ACCOUNT"/>
      <add key="ActiveDirectoryEndpoint" value="https://login.microsoftonline.com/" />
      <add key="ResourceManagerEndpoint" value="https://management.azure.com/" />
      <add key="WindowsManagementUri" value="https://management.core.windows.net/" />
      <add key="AsaClientId" value="1950a258-227b-4e31-a9cf-717495945fc2" />
      <add key="RedirectUri" value="urn:ietf:wg:oauth:2.0:oob" />
      <add key="SubscriptionId" value="YOUR AZURE SUBSCRIPTION ID" />
      <add key="ActiveDirectoryTenantId" value="YOUR TENANT ID" />
    </appSettings>
    

    Cserélje le az SubscriptionId és az ActiveDirectoryTenantId értékeit az Azure-előfizetésre és a bérlőazonosítókra. Ezeket az értékeket a következő PowerShell-parancsmag futtatásával szerezheti be:

    Get-AzureAccount
    
  4. Adja hozzá az alábbi using utasításokat a projekt forrásfájljához (Program.cs).

      using System;
      using System.Configuration;
      using System.Threading;
      using Microsoft.Azure;
      using Microsoft.Azure.Management.Insights;
      using Microsoft.Azure.Management.Insights.Models;
      using Microsoft.Azure.Management.StreamAnalytics;
      using Microsoft.Azure.Management.StreamAnalytics.Models;
      using Microsoft.IdentityModel.Clients.ActiveDirectory;
    
  5. Adjon hozzá egy hitelesítési segédmetódust.

    public static string GetAuthorizationHeader()
    {
       AuthenticationResult result = null;
       var thread = new Thread(() =>
       {
          try
          {
              var context = new AuthenticationContext(
                 ConfigurationManager.AppSettings["ActiveDirectoryEndpoint"] +
                 ConfigurationManager.AppSettings["ActiveDirectoryTenantId"]);
              result = context.AcquireToken(
                  resource: ConfigurationManager.AppSettings["WindowsManagementUri"],
                  clientId: ConfigurationManager.AppSettings["AsaClientId"],
                  redirectUri: new Uri(ConfigurationManager.AppSettings["RedirectUri"]),
                  promptBehavior: PromptBehavior.Always);
          }
          catch (Exception threadEx)
          {
              Console.WriteLine(threadEx.Message);
          }
      });
    
      thread.SetApartmentState(ApartmentState.STA);
      thread.Name = "AcquireTokenThread";
      thread.Start();
      thread.Join();
    
      if (result != null)
      {
          return result.AccessToken;
      }
          throw new InvalidOperationException("Failed to acquire token");
    }
    

Felügyeleti ügyfelek létrehozása

Az alábbi kód beállítja a szükséges változókat és felügyeleti ügyfeleket.

 string resourceGroupName = "<YOUR AZURE RESOURCE GROUP NAME>";
 string streamAnalyticsJobName = "<YOUR STREAM ANALYTICS JOB NAME>";

 // Get authentication token
 TokenCloudCredentials aadTokenCredentials =
     new TokenCloudCredentials(
         ConfigurationManager.AppSettings["SubscriptionId"],
         GetAuthorizationHeader());

 Uri resourceManagerUri = new
 Uri(ConfigurationManager.AppSettings["ResourceManagerEndpoint"]);

 // Create Stream Analytics and Insights management client
 StreamAnalyticsManagementClient streamAnalyticsClient = new
 StreamAnalyticsManagementClient(aadTokenCredentials, resourceManagerUri);
 InsightsManagementClient insightsClient = new
 InsightsManagementClient(aadTokenCredentials, resourceManagerUri);

Meglévő Stream Analytics-feladat figyelésének engedélyezése

Az alábbi kód lehetővé teszi egy meglévő Stream Analytics-feladat figyelését. A kód első része get kérést küld a Stream Analytics szolgáltatáshoz az adott Stream Analytics-feladattal kapcsolatos információk lekéréséhez. A kód második felében a Put metódus paramétereként a GET kérelemből lekért azonosító tulajdonságot használja, amely PUT-kérést küld a Elemzések szolgáltatásnak a Stream Analytics-feladat figyelésének engedélyezéséhez.

Figyelmeztetés

Ha korábban engedélyezte egy másik Stream Analytics-feladat figyelését, akár az Azure Portalon, akár programozott módon az alábbi kódon keresztül, javasoljuk, hogy adja meg ugyanazt a tárfióknevet, amelyet korábban a figyelés engedélyezésekor használt.

A tárfiók ahhoz a régióhoz van társítva, amelyben a Stream Analytics-feladatot létrehozta, nem pedig magához a feladathoz.

Az ugyanabban a régióban található Összes Stream Analytics-feladat (és minden más Azure-erőforrás) osztozik ezen a tárfiókon a figyelési adatok tárolásához. Ha másik tárfiókot ad meg, az nem kívánt mellékhatásokat okozhat a többi Stream Analytics-feladat vagy más Azure-erőforrás monitorozása során.

A következő kódban lecserélendő <YOUR STORAGE ACCOUNT NAME> tárfióknévnek egy olyan tárfióknak kell lennie, amely ugyanabban az előfizetésben van, mint a Stream Analytics-feladat, amelyre a figyelést engedélyezi.

// Get an existing Stream Analytics job
 JobGetParameters jobGetParameters = new JobGetParameters()
 {
     PropertiesToExpand = "inputs,transformation,outputs"
 };
 JobGetResponse jobGetResponse = streamAnalyticsClient.StreamingJobs.Get(resourceGroupName, streamAnalyticsJobName, jobGetParameters);

// Enable monitoring
ServiceDiagnosticSettingsPutParameters insightPutParameters = new ServiceDiagnosticSettingsPutParameters()
{
        Properties = new ServiceDiagnosticSettings()
       {
           StorageAccountName = "<YOUR STORAGE ACCOUNT NAME>"
       }
};
insightsClient.ServiceDiagnosticSettingsOperations.Put(jobGetResponse.Job.Id, insightPutParameters);

Támogatás kérése

További segítségért próbálja ki a Microsoft Q&A kérdésoldalát az Azure Stream Analyticshez.

Következő lépések