Я должен сказать, что, кажется, нет модуля PowerShell для изменения URL веб-теста App Insight, но мы можем сделать это через REST API. Попробуйте PowerShell ниже:
$clientId = "<your Azure AD application ID>"
$clientSec="<your Azure AD application secret>"
$appInsightName ="<your app insight name>"
$webtestName="<your webtest name>"
$subscriptionId = "<your subscription ID>"
$resourceGroupName = "<your resource group name that your app insight in>"
$tenant = "<your tenant name/ID>"
$newUrl = "<the new URL>"
#get access token to fetch details of webtest
$body=@{
"grant_type"="client_credentials";
"resource"="https://management.azure.com/";
"client_id"= $clientId;
"client_secret" = $clientSec
}
$accessToken=(Invoke-RestMethod -Uri "https://login.windows.net/$tenant/oauth2/token" -Method POST -Body $body ).access_token
$uri = "https://management.azure.com/subscriptions/{0}/resourcegroups/{1}/providers/microsoft.insights/webtests/{2}-{3}?api-version=2015-05-01"
$uri = $uri.Replace("{0}",$subscriptionId).Replace("{1}",$resourceGroupName).Replace("{2}",$webtestName).Replace("{3}",$appInsightName)
$webtestResult = Invoke-RestMethod -Uri $uri -Method GET -Headers @{"Authorization"="Bearer $accessToken"}
#modify the url of webtest
$webTestConf = [xml]@($webtestResult.properties.Configuration.WebTest)
$webTestConf.WebTest.Items.Request.Url = $newUrl
#structure request json to update webtest
$locations = $webtestResult.properties.Locations | ConvertTo-Json
$Configuration = $webTestConf.WebTest.OuterXml | ConvertTo-Json
$Configuration = $Configuration.Replace("\u003c","<").replace("\u003e",">")
$location = $webtestResult.location
$tags = $webtestResult.tags| ConvertTo-Json
$name = $webtestResult.properties.Name
$kind = $webtestResult.properties.Kind
$json = @"
{
"location":"$location",
"tags":$tags,
"properties":{
"Name":"$name",
"Enabled": true,
"Frequency": 300,
"Timeout": 120,
"Locations":$locations,
"Configuration":{"webtest":$Configuration},
"Kind":"$kind"
}
}
"@
Invoke-RestMethod -Uri $uri -Method PUT -Body $json -Headers @{"Authorization"="Bearer $accessToken";"Content-Type"="application/json"}
За исключением функции Azure, вы можете использовать Runbook PowerShell для автоматизации Azure с запланированной задачей для удовлетворения ваших требований.
Кстати, эта демонстрационная версия PowerShell использует принцип обслуживания для подключения к подписке Azure. Убедитесь, что у вашего рекламного приложения Azure есть разрешение на изменение информации о приложении. Если у вас есть что-то неясное, пожалуйста, дайте мне знать. Этот вопрос не должен пройти!