How to create a new instance of Azure Application Insights properties via REST API

I would like to automate the setup of Azure Application Insights accounts for an ASP.Net web application.

I have installed the nuget package: Install-Package Microsoft.Azure.Insights -Pre

Now I am looking atMicrosoft.Azure.Management.Insights.InsightsManagementClient

There are many operations to manage an existing account, except that I cannot find one to create a new one.

To be clear: at https://portal.azure.com I can click New > Create > Developer Services > Application Insights

. How do I do this in C #?

+3


source to share


2 answers


Thanks to Anastasia powershell example I was able to look at the powershell cmhelet command and figure out how to do it in code:



// initialize resource management client
var resourceManagement = new ResourceManagementClient(this.Credentials);
resourceManagement.Providers.RegisterAsync("microsoft.insights").Result;

// create identity & parameters for create call
var resourceIdentity = new ResourceIdentity(
    "SomeResourceName", // ResourceName
    "microsoft.insights/components", // ResourceType
    "2014-04-01" // Api Version
);
var parameters = new GenericResource {
    Location = 'centralus'
};

// send call off and hope for the best
var result = this.ManagementContext.ResourceManagement.Resources.CreateOrUpdateAsync(
    "SomeResourceGroupName",
    resourceIdentity,
    parameters,
    CancellationToken.None).Result;

      

0


source


Here is a script created by Eric Mattingly (you need to install Azure PowerShell for this):



Output:
App Insights Name =  erimattestapp
IKey =  00000000-0000-0000-0000-000000000000

Script:  
cls

##################################################################
# Set Values
##################################################################

#If running manually, comment this out to before the first execution to login to the Azure Portal
#Add-AzureAccount

#Set the name of the Application Insights Resource
$appInsightsName = "erimatTestApp"

#Set the application name used for the value of the Tag "AppInsightsApp" - http://azure.microsoft.com/en-us/documentation/articles/azure-preview-portal-using-tags/
$applicationTagName = "erimatTestApp"

#Set the name of the Resource Group to use.  By default will use the application Name as a starter
$resourceGroupName = "erimatTestAppRG"

##################################################################
# Create the Resource and Output the name and iKey
##################################################################
#Set the script to Resource Manager - http://azure.microsoft.com/en-us/documentation/articles/powershell-azure-resource-manager/
Switch-AzureMode AzureResourceManager

#Select the azure subscription
Select-AzureSubscription -SubscriptionName "ECIT Preproduction Monitoring"

#Create the App Insights Resource
$resource = New-AzureResource -Name $appInsightsName -ResourceGroupName $resourceGroupName -Tag @{ Name = "AppInsightsApp"; Value = $applicationTagName} -ResourceType "Microsoft.Insights/Components" -Location "Central US" -ApiVersion "2014-08-01"

#Give team owner access - http://azure.microsoft.com/en-us/documentation/articles/role-based-access-control-powershell/
New-AzureRoleAssignment -Mail "ECITTelemetryTeam@microsoft.com" -RoleDefinitionName Owner -Scope $resource.ResourceId | Out-Null

#Display iKey
Write-Host "App Insights Name = " $resource.Properties["Name"]
Write-Host "IKey = " $resource.Properties["InstrumentationKey"]
      

Run codeHide result


+4


source







All Articles