Alkalmazás-Elemzések-erőforrások kezelése a PowerShell használatával

Megjegyzés:

We recommend that you use the Azure Az PowerShell module to interact with Azure. See Install Azure PowerShell to get started. To learn how to migrate to the Az PowerShell module, see Migrate Azure PowerShell from AzureRM to Az.

Ez a cikk bemutatja, hogyan automatizálhatja automatikusan az alkalmazás-Elemzések erőforrások létrehozását és frissítését az Azure Resource Manager használatával. Ezt például egy buildelési folyamat részeként teheti meg. Az alapszintű alkalmazás-Elemzések erőforrás mellett rendelkezésre állási webes teszteket hozhat létre, riasztásokat állíthat be, beállíthatja a díjszabási sémát, és egyéb Azure-erőforrásokat is létrehozhat.

Ezeknek az erőforrásoknak a létrehozásának kulcsa a Resource Manager JSON-sablonjai. Az alapművelet a következő:

  • Töltse le a meglévő erőforrások JSON-definícióit.
  • Paraméterezhet bizonyos értékeket, például neveket.
  • Futtassa a sablont, amikor új erőforrást szeretne létrehozni.

Több erőforrást is csomagolhat össze, hogy az összeset egyetlen lépésben hozza létre. Létrehozhat például egy alkalmazásfigyelőt rendelkezésre állási tesztekkel, riasztásokkal és tárhellyel a folyamatos exportáláshoz. Van néhány apróság a paraméterezésekkel, amelyeket itt ismertetünk.

Egyszeri beállítás

Ha korábban még nem használta a PowerShellt az Azure-előfizetésével, telepítse az Azure PowerShell-modult arra a gépre, amelyen futtatni szeretné a szkripteket:

  1. Telepítse a Microsoft Web Platform Installert (v5 vagy újabb verzió).
  2. Ezzel telepítheti az Azure PowerShellt.

Az Azure Resource Manager-sablonok (ARM-sablonok) használata mellett számos alkalmazás-Elemzések PowerShell-parancsmag is rendelkezésre áll. Ezek a parancsmagok megkönnyítik az alkalmazás Elemzések erőforrások programozott konfigurálását. A parancsmagok által engedélyezett képességeket a következőre használhatja:

  • Alkalmazás-Elemzések-erőforrások létrehozása és törlése.
  • Lekérheti az alkalmazás-Elemzések erőforrások és azok tulajdonságainak listáját.
  • Folyamatos exportálás létrehozása és kezelése.
  • Alkalmazáskulcsok létrehozása és kezelése.
  • Állítsa be a napi korlátot.
  • Állítsa be a tarifacsomagot.

Alkalmazás-Elemzések-erőforrások létrehozása PowerShell-parancsmag használatával

A New-AzApplication Elemzések parancsmaggal az alábbi módon hozhat létre új alkalmazás-Elemzések-erőforrást az Usa keleti régiójában található Azure-beli adatközpontban:

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

Alkalmazás-Elemzések-erőforrások létrehozása ARM-sablonnal

Az alábbiakban bemutatjuk, hogyan hozhat létre új alkalmazás-Elemzések erőforrást ARM-sablon használatával.

Az ARM-sablon létrehozása

Hozzon létre egy új .json-fájlt. Hívjuk meg template1.json ebben a példában. Másolja be a tartalmat a fájlba:

    {
        "$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')]"
                    }
                }
            }
        ]
    }

Új alkalmazás-Elemzések-erőforrás létrehozása az ARM-sablonnal

  1. A PowerShellben jelentkezzen be az Azure-ba a .$Connect-AzAccount

  2. A környezet beállítása előfizetésre a következővel Set-AzContext "<subscription ID>": .

  3. Futtasson egy új üzembe helyezést egy új alkalmazás Elemzések erőforrás létrehozásához:

        New-AzResourceGroupDeployment -ResourceGroupName Fabrikam `
               -TemplateFile .\template1.json `
               -appName myNewApp
    
    
    • -ResourceGroupName az a csoport, ahol létre szeretné hozni az új erőforrásokat.
    • -TemplateFile az egyéni paraméterek előtt kell történnie.
    • -appName a létrehozandó erőforrás neve.

Más paramétereket is hozzáadhat. A leírásukat a sablon paraméterek szakaszában találja.

A rendszerállapot-kulcs lekérése

Az alkalmazáserőforrás létrehozása után szüksége lesz a rendszerállapot-kulcsra:

  1. Jelentkezzen be az Azure-ba a következő használatával $Connect-AzAccount: .
  2. A környezet beállítása előfizetésre a következővel Set-AzContext "<subscription ID>": .
  3. Ezután használja a következőt:
    1. $resource = Get-AzResource -Name "<resource name>" -ResourceType "Microsoft.Insights/components"
    2. $details = Get-AzResource -ResourceId $resource.ResourceId
    3. $details.Properties.InstrumentationKey

Az alkalmazás Elemzések erőforrás számos más tulajdonságának listájának megtekintéséhez használja a következőt:

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

További tulajdonságok érhetők el a parancsmagok segítségével:

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

Tekintse meg a parancsmagok paramétereinek részletes dokumentációját .

Megjegyzés:

2025. március 31-én megszűnik az eszközkulcsalapú betöltés támogatása. A rendszerállapot-kulcsok betöltése továbbra is működni fog, de a továbbiakban nem biztosítunk frissítéseket vagy támogatást a funkcióhoz. Váltás kapcsolati sztring az új képességek kihasználásához.

Az adatmegőrzés beállítása

Az alábbi három módszerrel programozott módon állíthatja be az adatmegőrzést egy alkalmazás Elemzések-erőforráson.

Adatmegőrzés beállítása PowerShell-parancsokkal

Íme egy egyszerű PowerShell-parancskészlet az alkalmazás Elemzések erőforrás adatmegőrzésének beállításához:

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

Adatmegőrzés beállítása REST használatával

Az alkalmazás Elemzések erőforrás aktuális adatmegőrzésének lekéréséhez használhatja az ARMClient OSS-eszközt. További információ az ARMClientről David Ebbo és Daniel Bowbyes cikkeiből. Íme egy példa az ARMClient aktuális adatmegőrzés lekérésére:

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

A megőrzés beállításához a parancs egy hasonló PUT:

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}}"

Ha az adatmegőrzést 365 napra szeretné beállítani az előző sablon használatával, futtassa a következőt:

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

Adatmegőrzés beállítása PowerShell-szkripttel

A következő szkript a megőrzés módosítására is használható. Másolja ezt a szkriptet a Set-ApplicationInsightsRetention.ps1mentéshez.

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

Ez a szkript ezután a következő módon használható:

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

A napi korlát beállítása

A napi korlát tulajdonságainak lekéréséhez használja a Set-AzApplication Elemzések PricingPlan parancsmagot:

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

A napi korlát tulajdonságainak beállításához használja ugyanazt a parancsmagot. Ha például napi 300 GB-ra szeretné beállítani a korlátot:

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

Az ARMClient használatával is lekérheti és beállíthatja a napi korlátparamétereket. Az aktuális értékek lekéréséhez használja a következőt:

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

A napi korlát alaphelyzetbe állítási idejének beállítása

A napi korlát alaphelyzetbe állítási idejének beállításához használhatja az ARMClientet. Íme egy példa ARMClient az alaphelyzetbe állítási idő új órára való beállítására. Ez a példa 12:00 UTC-t mutat be:

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}}"

A tarifacsomag beállítása

Az aktuális díjszabási csomag beszerzéséhez használja a Set-AzApplication Elemzések PricingPlan parancsmagot:

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

A tarifacsomag beállításához használja ugyanazt a parancsmagot a -PricingPlan megadott parancsmaggal:

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

A tarifacsomagot egy meglévő alkalmazás-Elemzések-erőforráson is beállíthatja az előző ARM-sablonnal, amely kihagyja a "microsoft.insights/components" erőforrást és a dependsOn csomópontot a számlázási erőforrásból. Ha például gb-onkénti csomagra (korábbi nevén Alapcsomagra) szeretné beállítani, futtassa a következőt:

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

A priceCode definíció a következő:

priceCode Plan
1 GB-onként (korábbi nevén Alapszintű csomag)
2 Csomópontonként (korábbi nevén vállalati csomag)

Végül az ARMClient használatával lekérheti és beállíthatja a tarifacsomagokat és a napi korlátparamétereket. Az aktuális értékek lekéréséhez használja a következőt:

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

Ezeket a paramétereket a következőkkel állíthatja be:

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}}"

Ez a kód napi 200 GB-ra állítja be a napi korlátot, konfigurálja a napi korlát alaphelyzetbe állítási idejét UTC 12:00-ra, e-maileket küld mind a korlát elérésekor, mind a figyelmeztetési szint teljesülésekor, és beállítja a figyelmeztetési küszöbértéket a korlát 90%-ára.

Metrikariasztás hozzáadása

A metrikariasztások létrehozásának automatizálásához tekintse meg a Metrikariasztások sablont ismertető cikket.

Rendelkezésre állási teszt hozzáadása

A rendelkezésre állási tesztek automatizálásához tekintse meg a Metrikariasztások sablont ismertető cikket.

További erőforrások hozzáadása

Bármely más erőforrás létrehozásának automatizálásához hozzon létre manuálisan egy példát, majd másolja és paraméterezi a kódját az Azure Resource Managerből.

  1. Nyissa meg az Azure Resource Managert. Navigáljon lefelé subscriptions/resourceGroups/<your resource group>/providers/Microsoft.Insights/components az alkalmazáserőforráshoz.

    Screenshot that shows navigation in Azure Resource Explorer.

    Az összetevők az alkalmazások megjelenítéséhez szükséges alapvető alkalmazás-Elemzések erőforrások. A kapcsolódó riasztási szabályokhoz és a rendelkezésre állási webes tesztekhez külön erőforrások tartoznak.

  2. Másolja az összetevő JSON-ját a megfelelő helyre template1.json.

  3. Törölje a következő tulajdonságokat:

    • id
    • InstrumentationKey
    • CreationDate
    • TenantId
  4. Nyissa meg a szakaszokat és alertrules a webtests szakaszokat, és másolja az egyes elemek JSON-ját a sablonba. Ne másolja a csomópontokról vagy alertrules a webtests csomópontokról. Nyissa meg az alattuk lévő elemeket.

    Minden webes teszthez tartozik egy riasztási szabály, ezért mindkettőt ki kell másolnia.

  5. Szúrja be ezt a sort az egyes erőforrásokba:

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

A sablon paraméterezése

Most az adott neveket paraméterekre kell cserélnie. Egy sablon paraméterezéséhez segédfüggvények halmazával kell kifejezéseket írnia.

A sztringek csak egy részét nem paraméterezheti, ezért sztringek készítésére használható concat() .

Íme néhány példa a használni kívánt helyettesítésekre. Az egyes helyettesítéseknek több előfordulása is van. Előfordulhat, hogy másokra van szüksége a sablonban. Ezek a példák a sablon tetején definiált paramétereket és változókat használják.

Find Csere erre
"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" (kisbetű) "[toLower(parameters('appName'))]"
"<WebTest Name=\"myWebTest\" ...
Url=\"http://fabrikam.com/home\" ...>"
[concat('<WebTest Name=\"',
parameters('webTestName'),
'\" ... Url=\"', parameters('Url'),
'\"...>')]"

Függőségek beállítása az erőforrások között

Az Azure-nak szigorú sorrendben kell beállítania az erőforrásokat. Ha meg szeretné győződni arról, hogy az egyik beállítás befejeződik a következő kezdés előtt, adjon hozzá függőségi sorokat:

  • A rendelkezésre állási teszterőforrásban:

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

  • A rendelkezésre állási teszt riasztási erőforrásában:

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

Következő lépések

Tekintse meg az alábbi automatizálási cikkeket: