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:
- Visual Studio 2019 vagy 2015
- Letöltött és telepített Azure .NET SDK
- Meglévő Stream Analytics-feladat, amelynél engedélyezni kell a figyelést
Projekt létrehozása
Hozzon létre egy Visual Studio C# .NET-konzolalkalmazást.
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
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
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;
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
- Az Azure Stream Analytics bemutatása
- Get started using Azure Stream Analytics (Bevezetés az Azure Stream Analytics használatába)
- Scale Azure Stream Analytics jobs (Azure Stream Analytics-feladatok méretezése)
- Azure Stream Analytics Query Language Reference (Referencia az Azure Stream Analytics lekérdezési nyelvhez)
- Az Azure Stream Analytics felügyeleti REST API referenciája