Aggiungere entità cluster per Azure Esplora dati
Esplora dati di Azure è un servizio di esplorazione dati rapido e a scalabilità elevata per dati di log e di telemetria. In questo articolo si apprenderà come aggiungere entità cluster per Azure Esplora dati usando C#, Python o un modello di Azure Resource Manager (ARM).
Per esempi di codice basati sulle versioni precedenti di SDK, vedere l'articolo archiviato.
Prerequisiti
I prerequisiti variano in base al metodo usato per aggiungere l'entità. Scegliere la scheda pertinente per il metodo preferito.
Nell'elenco seguente vengono descritti i prerequisiti per aggiungere un'entità cluster con C#.
- Un account Microsoft o un'identità utente di Microsoft Entra. Non è necessaria una sottoscrizione di Azure.
- Un cluster e un database di Esplora dati di Azure. Creare un cluster e un database.
- Visual Studio 2022 Community Edition. Attivare lo sviluppo di Azure durante la configurazione di Visual Studio.
- Microsoft Entra'applicazione e un'entità servizio che può accedere alle risorse. Salvare l'ID directory (tenant),l'ID applicazione e il segreto client.
- Installare Azure.ResourceManager.Kusto.
- Installare Azure.Identity per l'autenticazione.
Aggiungere un'entità cluster
Eseguire il codice seguente per aggiungere un'entità cluster:
var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Directory (tenant) ID
var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Application ID
var clientSecret = "PlaceholderClientSecret"; //Client Secret
var subscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
var credentials = new ClientSecretCredential(tenantId, clientId, clientSecret);
var resourceManagementClient = new ArmClient(credentials, subscriptionId);
var resourceGroupName = "testrg";
//The cluster that is created as part of the Prerequisites
var clusterName = "mykustocluster";
var subscription = await resourceManagementClient.GetDefaultSubscriptionAsync();
var resourceGroup = (await subscription.GetResourceGroupAsync(resourceGroupName)).Value;
var cluster = (await resourceGroup.GetKustoClusterAsync(clusterName)).Value;
var clusterPrincipalAssignments = cluster.GetKustoClusterPrincipalAssignments();
var clusterPrincipalAssignmentName = "mykustoclusterprincipalassignment";
var principalId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //User email, application ID, or security group name
var role = KustoClusterPrincipalRole.AllDatabasesAdmin; //AllDatabasesAdmin or AllDatabasesViewer
var tenantIdForPrincipal = new Guid("xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx");
var principalType = KustoPrincipalAssignmentType.App; //User, App, or Group
var clusterPrincipalAssignmentData = new KustoClusterPrincipalAssignmentData
{
ClusterPrincipalId = principalId, Role = role, PrincipalType = principalType, TenantId = tenantIdForPrincipal
};
await clusterPrincipalAssignments.CreateOrUpdateAsync(
WaitUntil.Completed, clusterPrincipalAssignmentName, clusterPrincipalAssignmentData
);
Impostazione | Valore consigliato | Descrizione campo |
---|---|---|
TenantId | xxxxxxxx-xxxxx-xxxx-xxxx-xxx | ID tenant. Noto anche come ID directory. |
subscriptionId | xxxxxxxx-xxxxx-xxxx-xxxx-xxx | L'ID sottoscrizione usato per la creazione di risorse. |
clientId | xxxxxxxx-xxxxx-xxxx-xxxx-xxx | L'ID client dell'applicazione che può accedere alle risorse nel tenant. |
clientSecret | SegnapostoClientSecret | Il segreto client dell'applicazione che può accedere alle risorse nel tenant. |
resourceGroupName | testrg | Nome del gruppo di risorse contenente il cluster. |
clusterName | mykustocluster | Nome del cluster. |
clusterPrincipalAssignmentName | mykustoclusterprincipalassignment | Nome della risorsa dell'entità cluster. |
principalId | xxxxxxxx-xxxxx-xxxx-xxxx-xxx | ID principale, che può essere indirizzo di posta elettronica utente, ID applicazione o nome gruppo di sicurezza. |
ruolo | AllDatabasesAdmin | Ruolo dell'entità cluster, che può essere "AllDatabasesAdmin", "AllDatabasesMonitor" o "AllDatabasesViewer". |
tenantIdForPrincipal | xxxxxxxx-xxxxx-xxxx-xxxx-xxx | ID tenant dell'entità. |
principalType | App | Tipo dell'entità, che può essere 'User', 'App' o 'Group' |