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 #?
source to share
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;
source to share
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"]
source to share