Uso di PowerShell per la configurazione di Application Insights per un'app Web di AzureUsing PowerShell to set up Application Insights for an Azure web app

Microsoft Azure può essere configurato per l'invio dei dati del servizio Diagnostica di Azure ad Azure Application Insights.Microsoft Azure can be configured to send Azure Diagnostics to Azure Application Insights. I dati della diagnostica sono correlati ai Servizi cloud di Azure e alle macchine virtuali di Azure.The diagnostics relate to Azure Cloud Services and Azure VMs. Completano i dati di telemetria inviati dall'interno dell'app con Application Insights SDK.They complement the telemetry that you send from within the app using the Application Insights SDK. Nell'ambito dell'automatizzazione del processo di creazione di nuove risorse in Azure, è possibile configurare la diagnostica usando PowerShell.As part of automating the process of creating new resources in Azure, you can configure diagnostics using PowerShell.

Modello di AzureAzure template

Se l'app Web è in Azure e si creano le risorse usando un modello di Azure Resource Manager, è possibile configurare Application Insights aggiungendo quanto segue al nodo risorse:If the web app is in Azure and you create your resources using an Azure Resource Manager template, you can configure Application Insights by adding this to the resources node:

{
  resources: [
    /* Create Application Insights resource */
    {
      "apiVersion": "2015-05-01",
      "type": "microsoft.insights/components",
      "name": "nameOfAIAppResource",
      "location": "centralus",
      "kind": "web",
      "properties": { "ApplicationId": "nameOfAIAppResource" },
      "dependsOn": [
        "[concat('Microsoft.Web/sites/', myWebAppName)]"
      ]
    }
   ]
 } 
  • nameOfAIAppResource : nome della risorsa di Application Insights.nameOfAIAppResource - a name for the Application Insights resource
  • myWebAppName : ID dell'app Web.myWebAppName - the id of the web app

Abilitare l'estensione delle funzionalità di diagnostica come parte della distribuzione di un servizio CloudEnable diagnostics extension as part of deploying a Cloud Service

Il cmdlet New-AzureDeployment ha un parametro ExtensionConfiguration, che accetta una matrice di configurazioni di diagnostica.The New-AzureDeployment cmdlet has a parameter ExtensionConfiguration, which takes an array of diagnostics configurations. Queste possono essere create con il cmdlet New-AzureServiceDiagnosticsExtensionConfig .These can be created using the New-AzureServiceDiagnosticsExtensionConfig cmdlet. ad esempio:For example:


    $service_package = "CloudService.cspkg"
    $service_config = "ServiceConfiguration.Cloud.cscfg"
    $diagnostics_storagename = "myservicediagnostics"
    $webrole_diagconfigpath = "MyService.WebRole.PubConfig.xml" 
    $workerrole_diagconfigpath = "MyService.WorkerRole.PubConfig.xml"

    $primary_storagekey = (Get-AzureStorageKey `
     -StorageAccountName "$diagnostics_storagename").Primary
    $storage_context = New-AzureStorageContext `
       -StorageAccountName $diagnostics_storagename `
       -StorageAccountKey $primary_storagekey

    $webrole_diagconfig = `
     New-AzureServiceDiagnosticsExtensionConfig `
      -Role "WebRole" -Storage_context $storageContext `
      -DiagnosticsConfigurationPath $webrole_diagconfigpath
    $workerrole_diagconfig = `
     New-AzureServiceDiagnosticsExtensionConfig `
      -Role "WorkerRole" `
      -StorageContext $storage_context `
      -DiagnosticsConfigurationPath $workerrole_diagconfigpath

    New-AzureDeployment `
      -ServiceName $service_name `
      -Slot Production `
      -Package $service_package `
      -Configuration $service_config `
      -ExtensionConfiguration @($webrole_diagconfig,$workerrole_diagconfig)

Abilitare l'estensione della diagnostica in un servizio Cloud esistenteEnable diagnostics extension on an existing Cloud Service

In un servizio esistente, usare Set-AzureServiceDiagnosticsExtension.On an existing service, use Set-AzureServiceDiagnosticsExtension.


    $service_name = "MyService"
    $diagnostics_storagename = "myservicediagnostics"
    $webrole_diagconfigpath = "MyService.WebRole.PubConfig.xml" 
    $workerrole_diagconfigpath = "MyService.WorkerRole.PubConfig.xml"
    $primary_storagekey = (Get-AzureStorageKey `
         -StorageAccountName "$diagnostics_storagename").Primary
    $storage_context = New-AzureStorageContext `
        -StorageAccountName $diagnostics_storagename `
        -StorageAccountKey $primary_storagekey

    Set-AzureServiceDiagnosticsExtension `
        -StorageContext $storage_context `
        -DiagnosticsConfigurationPath $webrole_diagconfigpath `
        -ServiceName $service_name `
        -Slot Production `
        -Role "WebRole" 
    Set-AzureServiceDiagnosticsExtension `
        -StorageContext $storage_context `
        -DiagnosticsConfigurationPath $workerrole_diagconfigpath `
        -ServiceName $service_name `
        -Slot Production `
        -Role "WorkerRole"

Ottenere la configurazione di estensione della diagnostica correnteGet current diagnostics extension configuration


    Get-AzureServiceDiagnosticsExtension -ServiceName "MyService"

Rimuovere l'estensione della diagnosticaRemove diagnostics extension


    Remove-AzureServiceDiagnosticsExtension -ServiceName "MyService"

Se è stata abilitata l'estensione della diagnostica usando Set-AzureServiceDiagnosticsExtension o New-AzureServiceDiagnosticsExtensionConfig senza il parametro role, è possibile rimuovere l'estensione usando Remove-AzureServiceDiagnosticsExtension senza il parametro role.If you enabled the diagnostics extension using either Set-AzureServiceDiagnosticsExtension or New-AzureServiceDiagnosticsExtensionConfig without the Role parameter, then you can remove the extension using Remove-AzureServiceDiagnosticsExtension without the Role parameter. Se il parametro role è stato usato al momento di abilitare l'estensione, deve essere usato anche quando si rimuove l'estensione.If the Role parameter was used when enabling the extension then it must also be used when removing the extension.

Per rimuovere l'estensione della diagnostica da ogni singolo ruolo:To remove the diagnostics extension from each individual role:


    Remove-AzureServiceDiagnosticsExtension -ServiceName "MyService" -Role "WebRole"

Vedere ancheSee also