PowerShell kullanarak Uygulama Analizler kaynaklarını yönetme

Dekont

Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Bu makalede, Azure Resource Manager'ı kullanarak Uygulama Analizler kaynaklarının otomatik olarak oluşturulmasını ve güncelleştirilmeyi nasıl otomatikleştirdiğiniz gösterilmektedir. Örneğin, bunu derleme işleminin bir parçası olarak yapabilirsiniz. Temel Uygulama Analizler kaynağıyla birlikte kullanılabilirlik web testleri oluşturabilir, uyarılar ayarlayabilir, fiyatlandırma düzenini ayarlayabilir ve diğer Azure kaynaklarını oluşturabilirsiniz.

Bu kaynakları oluşturmanın anahtarı Resource Manager için JSON şablonlarıdır. Temel yordam:

  • Mevcut kaynakların JSON tanımlarını indirin.
  • Adlar gibi belirli değerleri parametreleştirin.
  • Yeni bir kaynak oluşturmak istediğinizde şablonu çalıştırın.

Birkaç kaynağı birlikte paketleyerek hepsini tek seferde oluşturabilirsiniz. Örneğin, sürekli dışarı aktarma için kullanılabilirlik testleri, uyarılar ve depolama ile bir uygulama izleyicisi oluşturabilirsiniz. Burada açıklayacağımız bazı parametreleştirmelerin bazı incelikleri vardır.

Tek seferlik kurulum

Daha önce Azure aboneliğinizle PowerShell kullanmadıysanız betikleri çalıştırmak istediğiniz makineye Azure PowerShell modülünü yükleyin:

  1. Microsoft Web Platformu Yükleyicisi (v5 veya üzeri) yükleyin.
  2. Azure PowerShell'i yüklemek için bunu kullanın.

Azure Resource Manager şablonlarını (ARM şablonları) kullanmanın yanı sıra Zengin bir Uygulama Analizler PowerShell cmdlet'leri kümesi vardır. Bu cmdlet'ler Uygulama Analizler kaynaklarını programlı olarak yapılandırmayı kolaylaştırır. Cmdlet'ler tarafından etkinleştirilen özellikleri kullanarak aşağıdakileri yapabilirsiniz:

  • Uygulama Analizler kaynaklarını oluşturun ve silin.
  • Uygulama Analizler kaynaklarının ve özelliklerinin listesini alın.
  • Sürekli dışarı aktarma oluşturma ve yönetme.
  • Uygulama anahtarları oluşturma ve yönetme.
  • Günlük üst sınırı ayarlayın.
  • Fiyatlandırma planını ayarlayın.

PowerShell cmdlet'ini kullanarak Uygulama Analizler kaynakları oluşturma

New-AzApplication Analizler cmdlet'ini kullanarak Azure Doğu ABD veri merkezinde yeni bir Application Analizler kaynağı oluşturma burada anlatılmaktadır:

New-AzApplicationInsights -ResourceGroupName <resource group> -Name <resource name> -location eastus

ARM şablonu kullanarak Uygulama Analizler kaynakları oluşturma

ARM şablonu kullanarak yeni bir Uygulama Analizler kaynağı oluşturma burada açıklenmiştir.

ARM şablonunu oluşturma

Yeni bir .json dosyası oluşturun. Şimdi bu örnekte adını template1.json verelim. Bu içeriği içine kopyalayın:

    {
        "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
            "appName": {
                "type": "string",
                "metadata": {
                    "description": "Enter the name of your Application Insights resource."
                }
            },
            "appType": {
                "type": "string",
                "defaultValue": "web",
                "allowedValues": [
                    "web",
                    "java",
                    "other"
                ],
                "metadata": {
                    "description": "Enter the type of the monitored application."
                }
            },
            "appLocation": {
                "type": "string",
                "defaultValue": "eastus",
                "metadata": {
                    "description": "Enter the location of your Application Insights resource."
                }
            },
            "retentionInDays": {
                "type": "int",
                "defaultValue": 90,
                "allowedValues": [
                    30,
                    60,
                    90,
                    120,
                    180,
                    270,
                    365,
                    550,
                    730
                ],
                "metadata": {
                    "description": "Data retention in days"
                }
            },
            "ImmediatePurgeDataOn30Days": {
                "type": "bool",
                "defaultValue": false,
                "metadata": {
                    "description": "If set to true when changing retention to 30 days, older data will be immediately deleted. Use this with extreme caution. This only applies when retention is being set to 30 days."
                }
            },
            "priceCode": {
                "type": "int",
                "defaultValue": 1,
                "allowedValues": [
                    1,
                    2
                ],
                "metadata": {
                    "description": "Pricing plan: 1 = Per GB (or legacy Basic plan), 2 = Per Node (legacy Enterprise plan)"
                }
            },
            "dailyQuota": {
                "type": "int",
                "defaultValue": 100,
                "minValue": 1,
                "metadata": {
                    "description": "Enter daily quota in GB."
                }
            },
            "dailyQuotaResetTime": {
                "type": "int",
                "defaultValue": 0,
                "metadata": {
                    "description": "Enter daily quota reset hour in UTC (0 to 23). Values outside the range will get a random reset hour."
                }
            },
            "warningThreshold": {
                "type": "int",
                "defaultValue": 90,
                "minValue": 1,
                "maxValue": 100,
                "metadata": {
                    "description": "Enter the % value of daily quota after which warning mail to be sent. "
                }
            }
        },
        "variables": {
            "priceArray": [
                "Basic",
                "Application Insights Enterprise"
            ],
            "pricePlan": "[take(variables('priceArray'),parameters('priceCode'))]",
            "billingplan": "[concat(parameters('appName'),'/', variables('pricePlan')[0])]"
        },
        "resources": [
            {
                "type": "microsoft.insights/components",
                "kind": "[parameters('appType')]",
                "name": "[parameters('appName')]",
                "apiVersion": "2014-04-01",
                "location": "[parameters('appLocation')]",
                "tags": {},
                "properties": {
                    "ApplicationId": "[parameters('appName')]",
                    "retentionInDays": "[parameters('retentionInDays')]",
                    "ImmediatePurgeDataOn30Days": "[parameters('ImmediatePurgeDataOn30Days')]"
                },
                "dependsOn": []
            },
            {
                "name": "[variables('billingplan')]",
                "type": "microsoft.insights/components/CurrentBillingFeatures",
                "location": "[parameters('appLocation')]",
                "apiVersion": "2015-05-01",
                "dependsOn": [
                    "[resourceId('microsoft.insights/components', parameters('appName'))]"
                ],
                "properties": {
                    "CurrentBillingFeatures": "[variables('pricePlan')]",
                    "DataVolumeCap": {
                        "Cap": "[parameters('dailyQuota')]",
                        "WarningThreshold": "[parameters('warningThreshold')]",
                        "ResetTime": "[parameters('dailyQuotaResetTime')]"
                    }
                }
            }
        ]
    }

Yeni bir Uygulama Analizler kaynağı oluşturmak için ARM şablonunu kullanma

  1. PowerShell'de kullanarak $Connect-AzAccountAzure'da oturum açın.

  2. bağlamınızı ile Set-AzContext "<subscription ID>"bir abonelik olarak ayarlayın.

  3. Yeni bir Uygulama Analizler kaynağı oluşturmak için yeni bir dağıtım çalıştırın:

        New-AzResourceGroupDeployment -ResourceGroupName Fabrikam `
               -TemplateFile .\template1.json `
               -appName myNewApp
    
    
    • -ResourceGroupName , yeni kaynakları oluşturmak istediğiniz grupdur.
    • -TemplateFile özel parametrelerden önce gerçekleşmelidir.
    • -appName oluşturulacak kaynağın adıdır.

Başka parametreler ekleyebilirsiniz. Açıklamalarını şablonun parametreler bölümünde bulabilirsiniz.

İzleme anahtarını alma

Bir uygulama kaynağı oluşturduktan sonra izleme anahtarını isteyeceksiniz:

  1. kullanarak $Connect-AzAccountAzure'da oturum açın.
  2. bağlamınızı ile Set-AzContext "<subscription ID>"bir abonelik olarak ayarlayın.
  3. Ardından şu şekilde kullanın:
    1. $resource = Get-AzResource -Name "<resource name>" -ResourceType "Microsoft.Insights/components"
    2. $details = Get-AzResource -ResourceId $resource.ResourceId
    3. $details.Properties.InstrumentationKey

Application Analizler kaynağınızın diğer birçok özelliğinin listesini görmek için şunu kullanın:

Get-AzApplicationInsights -ResourceGroupName Fabrikam -Name FabrikamProd | Format-List

Cmdlet'ler aracılığıyla daha fazla özellik kullanılabilir:

  • Set-AzApplicationInsightsDailyCap
  • Set-AzApplicationInsightsPricingPlan
  • Get-AzApplicationInsightsApiKey
  • Get-AzApplicationInsightsContinuousExport

Bu cmdlet'lerin parametreleri için ayrıntılı belgelere bakın.

Dekont

31 Mart 2025’te izleme anahtarı alımı desteği sona erecektir. İzleme anahtarı alımı çalışmaya devam edecek, ancak artık özellik için güncelleştirme veya destek sağlamayacağız. Yeni özelliklerden yararlanmak için bağlantı dizesi geçiş.

Veri saklamayı ayarlama

Uygulama Analizler kaynağında veri saklamayı program aracılığıyla ayarlamak için aşağıdaki üç yöntemi kullanabilirsiniz.

PowerShell komutlarını kullanarak veri saklamayı ayarlama

Uygulama Analizler kaynağınız için veri saklamayı ayarlamak için basit bir PowerShell komutları kümesi aşağıdadır:

$Resource = Get-AzResource -ResourceType Microsoft.Insights/components -ResourceGroupName MyResourceGroupName -ResourceName MyResourceName
$Resource.Properties.RetentionInDays = 365
$Resource | Set-AzResource -Force

REST kullanarak veri saklamayı ayarlama

Uygulama Analizler kaynağınızın geçerli veri saklama süresini almak için OSS aracını ARMClient kullanabilirsiniz. David Ebbo ve Daniel Bowbyes'in makalelerinden ARMClient hakkında daha fazla bilgi edinin. Geçerli saklama süresini almak için aşağıdaki örneği kullanır ARMClient :

armclient GET /subscriptions/00000000-0000-0000-0000-00000000000/resourceGroups/MyResourceGroupName/providers/microsoft.insights/components/MyResourceName?api-version=2018-05-01-preview

Bekletmeyi ayarlamak için komutu benzer bir PUT komutudur:

armclient PUT /subscriptions/00000000-0000-0000-0000-00000000000/resourceGroups/MyResourceGroupName/providers/microsoft.insights/components/MyResourceName?api-version=2018-05-01-preview "{location: 'eastus', properties: {'retentionInDays': 365}}"

Önceki şablonu kullanarak veri saklama süresini 365 güne ayarlamak için şunu çalıştırın:

New-AzResourceGroupDeployment -ResourceGroupName "<resource group>" `
       -TemplateFile .\template1.json `
       -retentionInDays 365 `
       -appName myApp

PowerShell betiği kullanarak veri saklamayı ayarlama

Bekletmeyi değiştirmek için aşağıdaki betik de kullanılabilir. Olarak Set-ApplicationInsightsRetention.ps1kaydetmek için bu betiği kopyalayın.

Param(
    [Parameter(Mandatory = $True)]
    [string]$SubscriptionId,

    [Parameter(Mandatory = $True)]
    [string]$ResourceGroupName,

    [Parameter(Mandatory = $True)]
    [string]$Name,

    [Parameter(Mandatory = $True)]
    [string]$RetentionInDays
)
$ErrorActionPreference = 'Stop'
if (-not (Get-Module Az.Accounts)) {
    Import-Module Az.Accounts
}
$azProfile = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile
if (-not $azProfile.Accounts.Count) {
    Write-Error "Ensure you have logged in before calling this function."    
}
$currentAzureContext = Get-AzContext
$profileClient = New-Object Microsoft.Azure.Commands.ResourceManager.Common.RMProfileClient($azProfile)
$token = $profileClient.AcquireAccessToken($currentAzureContext.Tenant.TenantId)
$UserToken = $token.AccessToken
$RequestUri = "https://management.azure.com/subscriptions/$($SubscriptionId)/resourceGroups/$($ResourceGroupName)/providers/Microsoft.Insights/components/$($Name)?api-version=2015-05-01"
$Headers = @{
    "Authorization"         = "Bearer $UserToken"
    "x-ms-client-tenant-id" = $currentAzureContext.Tenant.TenantId
}
## Get Component object via ARM
$GetResponse = Invoke-RestMethod -Method "GET" -Uri $RequestUri -Headers $Headers 

## Update RetentionInDays property
if($($GetResponse.properties | Get-Member "RetentionInDays"))
{
    $GetResponse.properties.RetentionInDays = $RetentionInDays
}
else
{
    $GetResponse.properties | Add-Member -Type NoteProperty -Name "RetentionInDays" -Value $RetentionInDays
}
## Upsert Component object via ARM
$PutResponse = Invoke-RestMethod -Method "PUT" -Uri "$($RequestUri)" -Headers $Headers -Body $($GetResponse | ConvertTo-Json) -ContentType "application/json"
$PutResponse

Bu betik daha sonra şu şekilde kullanılabilir:

Set-ApplicationInsightsRetention `
        [-SubscriptionId] <String> `
        [-ResourceGroupName] <String> `
        [-Name] <String> `
        [-RetentionInDays <Int>]

Günlük üst sınırı ayarlama

Günlük üst sınır özelliklerini almak için Set-AzApplication Analizler PricingPlan cmdlet'ini kullanın:

Set-AzApplicationInsightsDailyCap -ResourceGroupName <resource group> -Name <resource name> | Format-List

Günlük üst sınır özelliklerini ayarlamak için aynı cmdlet'i kullanın. Örneğin, üst sınırı günde 300 GB olarak ayarlamak için:

Set-AzApplicationInsightsDailyCap -ResourceGroupName <resource group> -Name <resource name> -DailyCapGB 300

Ayrıca, günlük üst sınır parametrelerini almak ve ayarlamak için ARMClient'ı da kullanabilirsiniz. Geçerli değerleri almak için şunu kullanın:

armclient GET /subscriptions/00000000-0000-0000-0000-00000000000/resourceGroups/MyResourceGroupName/providers/microsoft.insights/components/MyResourceName/CurrentBillingFeatures?api-version=2018-05-01-preview

Günlük üst sınır sıfırlama süresini ayarlama

Günlük sınır sıfırlama süresini ayarlamak için ARMClient'ı kullanabilirsiniz. Sıfırlama süresini yeni bir saate ayarlamaya yönelik bir örnek ARMClient aşağıda verilmiştır. Bu örnekte 12:00 UTC gösterilmektedir:

armclient PUT /subscriptions/00000000-0000-0000-0000-00000000000/resourceGroups/MyResourceGroupName/providers/microsoft.insights/components/MyResourceName/CurrentBillingFeatures?api-version=2018-05-01-preview "{'CurrentBillingFeatures':['Basic'],'DataVolumeCap':{'Cap':100,'WarningThreshold':80,'ResetTime':12}}"

Fiyatlandırma planını ayarlama

Geçerli fiyatlandırma planını almak için Set-AzApplication Analizler PricingPlan cmdlet'ini kullanın:

Set-AzApplicationInsightsPricingPlan -ResourceGroupName <resource group> -Name <resource name> | Format-List

Fiyatlandırma planını ayarlamak için aşağıdakilerle aynı cmdlet'i -PricingPlan kullanın:

Set-AzApplicationInsightsPricingPlan -ResourceGroupName <resource group> -Name <resource name> -PricingPlan Basic

Ayrıca, önceki ARM şablonunu kullanarak , "microsoft.insights/components" kaynağını ve faturalama kaynağındaki düğümü atlayarak mevcut bir Application Analizler kaynağında dependsOn fiyatlandırma planını ayarlayabilirsiniz. Örneğin, bunu GB Başına planına (eski adıyla Temel plan) ayarlamak için şunu çalıştırın:

        New-AzResourceGroupDeployment -ResourceGroupName "<resource group>" `
               -TemplateFile .\template1.json `
               -priceCode 1 `
               -appName myApp

priceCode şu şekilde tanımlanır:

priceCode Planlama
Kategori 1 GB başına (eski adıYla Temel plan)
2 Düğüm Başına (eski adı kurumsal plan)

Son olarak, fiyatlandırma planlarını ve günlük üst sınır parametrelerini almak ve ayarlamak için ARMClient'ı kullanabilirsiniz. Geçerli değerleri almak için şunu kullanın:

armclient GET /subscriptions/00000000-0000-0000-0000-00000000000/resourceGroups/MyResourceGroupName/providers/microsoft.insights/components/MyResourceName/CurrentBillingFeatures?api-version=2018-05-01-preview

Aşağıdakini kullanarak bu parametrelerin tümünü ayarlayabilirsiniz:

armclient PUT /subscriptions/00000000-0000-0000-0000-00000000000/resourceGroups/MyResourceGroupName/providers/microsoft.insights/components/MyResourceName/CurrentBillingFeatures?api-version=2018-05-01-preview
"{'CurrentBillingFeatures':['Basic'],'DataVolumeCap':{'Cap':200,'ResetTime':12,'StopSendNotificationWhenHitCap':true,'WarningThreshold':90,'StopSendNotificationWhenHitThreshold':true}}"

Bu kod günlük üst sınırı günde 200 GB olarak ayarlayacak, günlük üst sınır sıfırlama süresini 12:00 UTC olarak yapılandıracak, hem üst sınıra ulaşıldığında hem de uyarı düzeyi karşılandığında e-posta gönderecek ve uyarı eşiğini üst sınırın %90'ını ayarlayacaktır.

Ölçüm uyarısı ekleme

Ölçüm uyarılarının oluşturulmasını otomatikleştirmek için Ölçüm uyarıları şablonu makalesine bakın.

Kullanılabilirlik testi ekleme

Kullanılabilirlik testlerini otomatikleştirmek için Ölçüm uyarıları şablonu makalesine bakın.

Daha fazla kaynak ekleme

Herhangi bir kaynaktan başka herhangi bir kaynağın oluşturulmasını otomatikleştirmek için el ile bir örnek oluşturun ve ardından Azure Resource Manager'dan kodunu kopyalayıp parametreleştirin.

  1. Azure Resource Manager'i açın. Uygulama kaynağınıza gidin subscriptions/resourceGroups/<your resource group>/providers/Microsoft.Insights/components .

    Screenshot that shows navigation in Azure Resource Explorer.

    Bileşenler, uygulamaları görüntülemek için temel Uygulama Analizler kaynaklarıdır. İlişkili uyarı kuralları ve kullanılabilirlik web testleri için ayrı kaynaklar vardır.

  2. Bileşenin JSON değerini içindeki template1.jsonuygun yere kopyalayın.

  3. Şu özellikleri silin:

    • id
    • InstrumentationKey
    • CreationDate
    • TenantId
  4. webtests ve alertrules bölümlerini açın ve tek tek öğeler için JSON dosyasını şablonunuz içine kopyalayın. veya alertrules düğümlerinden kopyalamayınwebtests. Altındaki öğelere gidin.

    Her web testinin ilişkili bir uyarı kuralı vardır, bu nedenle ikisini de kopyalamanız gerekir.

  5. Her kaynağa şu satırı ekleyin:

    "apiVersion": "2015-05-01",

Şablonu parametreleştirme

Şimdi belirli adları parametrelerle değiştirmeniz gerekir. Şablonu parametreleştirmek için bir dizi yardımcı işlev kullanarak ifadeler yazarsınız.

Bir dizenin yalnızca bir bölümünü parametreleştiremezsiniz, bu nedenle dize oluşturmak için kullanın concat() .

Aşağıda, yapmak istediğiniz değiştirmelerin örnekleri verilmiştir. Her değiştirmenin birkaç örneği vardır. Şablonunuzda başka kişilere ihtiyacınız olabilir. Bu örneklerde, şablonun en üstünde tanımladığımız parametreler ve değişkenler kullanılır.

Bul Replace with
"hidden-link:/subscriptions/.../../components/MyAppName" "[concat('hidden-link:',
resourceId('microsoft.insights/components',
parameters('appName')))]"
"/subscriptions/.../../alertrules/myAlertName-myAppName-subsId", "[resourceId('Microsoft.Insights/alertrules', variables('alertRuleName'))]",
"/subscriptions/.../../webtests/myTestName-myAppName", "[resourceId('Microsoft.Insights/webtests', parameters('webTestName'))]",
"myWebTest-myAppName" "[variables(testName)]"'
"myTestName-myAppName-subsId" "[variables('alertRuleName')]"
"myAppName" "[parameters('appName')]"
"myappname" (küçük harf) "[toLower(parameters('appName'))]"
"<WebTest Name=\"myWebTest\" ...
Url=\"http://fabrikam.com/home\" ...>"
[concat('<WebTest Name=\"',
parameters('webTestName'),
'\" ... Url=\"', parameters('Url'),
'\"...>')]"

Kaynaklar arasındaki bağımlılıkları ayarlama

Azure kaynakları kesin bir düzende ayarlamalıdır. Bir kurulumun sonraki başlamadan önce tamamlandığından emin olmak için bağımlılık satırları ekleyin:

  • Kullanılabilirlik testi kaynağında:

    "dependsOn": ["[resourceId('Microsoft.Insights/components', parameters('appName'))]"],

  • Kullanılabilirlik testi için uyarı kaynağında:

    "dependsOn": ["[resourceId('Microsoft.Insights/webtests', variables('testName'))]"],

Sonraki adımlar

Diğer otomasyon makalelerine bakın: