Aracılığıyla paylaş


Program aracılığıyla Stream Analytics iş izleyicisi oluşturma

Bu makalede Stream Analytics işi için izlemeyi etkinleştirme işlemi gösterilmektedir. REST API'leri, Azure SDK veya PowerShell aracılığıyla oluşturulan Stream Analytics işlerinde izleme varsayılan olarak etkin değildir. İşin İzleyici sayfasına gidip Etkinleştir düğmesine tıklayarak Azure portalında el ile etkinleştirebilir veya bu makaledeki adımları izleyerek bu işlemi otomatikleştirebilirsiniz. İzleme verileri, Stream Analytics işiniz için Azure portalının Ölçümler alanında gösterilir.

Önkoşullar

Bu işleme başlamadan önce aşağıdaki önkoşullara sahip olmanız gerekir:

  • Visual Studio 2019 veya 2015
  • Azure .NET SDK'sı indirildi ve yüklendi
  • İzlemenin etkinleştirilmesi gereken mevcut bir Stream Analytics işi

Bir proje oluştur

  1. Visual Studio C# .NET konsol uygulaması oluşturun.

  2. Paket Yöneticisi Konsolu'nda aşağıdaki komutları çalıştırarak NuGet paketlerini yükleyin. birincisi Azure Stream Analytics Management .NET SDK'dır. İkincisi, izlemeyi etkinleştirmek için kullanılacak Azure İzleyici SDK'sıdır. Sonuncusu, kimlik doğrulaması için kullanılacak Microsoft Entra istemcisidir.

    Install-Package Microsoft.Azure.Management.StreamAnalytics
    Install-Package Microsoft.Azure.Insights -Pre
    Install-Package Microsoft.IdentityModel.Clients.ActiveDirectory
    
  3. App.config dosyasına aşağıdaki uygulama Ayarlar bölümünü ekleyin.

    <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>
    

    SubscriptionId ve ActiveDirectoryTenantId değerlerini Azure aboneliğiniz ve kiracı kimliklerinizle değiştirin. Aşağıdaki PowerShell cmdlet'ini çalıştırarak bu değerleri alabilirsiniz:

    Get-AzureAccount
    
  4. Aşağıdaki using bildirimlerini projedeki kaynak dosyasına (Program.cs) ekleyin.

      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. Kimlik doğrulaması yardımcı yöntemi ekleyin.

    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");
    }
    

Yönetim istemcileri oluşturma

Aşağıdaki kod gerekli değişkenleri ve yönetim istemcilerini ayarlar.

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

Mevcut bir Stream Analytics işi için izlemeyi etkinleştirme

Aşağıdaki kod, mevcut bir Stream Analytics işi için izlemeyi etkinleştirir. Kodun ilk bölümü, belirli Bir Stream Analytics işi hakkında bilgi almak için Stream Analytics hizmetine karşı bir GET isteği gerçekleştirir. Kodun ikinci yarısında put yöntemi için parametre olarak ID özelliğini (GET isteğinden alınır) kullanır ve bu da Stream Analytics işi için izlemeyi etkinleştirmek üzere Analizler hizmetine bir PUT isteği gönderir.

Uyarı

Daha önce Azure portalı aracılığıyla veya aşağıdaki kod aracılığıyla program aracılığıyla farklı bir Stream Analytics işi için izlemeyi etkinleştirdiyseniz, izlemeyi daha önce etkinleştirdiğinizde kullandığınız depolama hesabı adını sağlamanız önerilir.

Depolama hesabı, özellikle işin kendisine değil, Stream Analytics işinizi oluşturduğunuz bölgeye bağlıdır.

Aynı bölgedeki tüm Stream Analytics işleri (ve diğer tüm Azure kaynakları) izleme verilerini depolamak için bu depolama hesabını paylaşır. Farklı bir depolama hesabı sağlarsanız, diğer Stream Analytics işlerinizin veya diğer Azure kaynaklarınızın izlenmesinde istenmeyen yan etkilere neden olabilir.

Aşağıdaki kodda değiştirmek <YOUR STORAGE ACCOUNT NAME> için kullandığınız depolama hesabı adı, izlemeyi etkinleştirdiğiniz Stream Analytics işiyle aynı abonelikte yer alan bir depolama hesabı olmalıdır.

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

Destek alın

Daha fazla yardım için Azure Stream Analytics için Microsoft Soru-Cevap soru sayfamızı deneyin.

Sonraki adımlar