Как удалить связь между Azure AppInsights и службой приложений через PowerShell - PullRequest
0 голосов
/ 08 марта 2019

У меня есть один ресурс AppInsights, который обслуживает серию сервисов приложений (каждый сервис приложений представляет собой изолированную тестовую среду).Мы раскручиваем и уничтожаем эти сервисы приложений через PowerShell.

Сервисы приложений связаны с AppInsights через скрытые теги.При удалении службы приложений скрытый тег автоматически не удаляется.Ресурс имеет верхний предел в 15 тегов, что означает, что я должен удалить эти теги из AppInsights при разрушении среды.

Я могу просматривать теги следующим образом:

PS Azure:\> $AppInsights = Get-AzureRmApplicationInsights -ResourceGroupName "foo" -Name "bar";

PS Azure:\> $AppInsights.Tags;

Key                                                                                    Value
---                                                                                                                                                                  -----
hidden-link:/subscriptions/xxx/resourceGroups/foo/providers/Microsoft.Web/sites/xxx    Resource
...

ТакЯ могу отредактировать эту хеш-таблицу, но, похоже, нет способа сохранить изменения обратно в Azure через PowerShell.

Есть ли другой способ сделать это?

1 Ответ

1 голос
/ 11 марта 2019

Прямого пути для этого нет.Но вы можете использовать Set-AzureRmResource для достижения этой цели.

Во-первых, вы можете использовать Get-AzureRmApplicationInsights -ResourceGroupName "xxx" -Name "xxx" для получения свойств вашего приложения, обратите внимание, что тип, который будет использоваться позже:

enter image description here

И я также вижу, что у меня есть 5 тегов:

enter image description here

И я хочуудалить один конец с помощью «appInsightsdemo11»

Пример кода, как показано ниже (вы можете изменить его в соответствии с вашими потребностями):

$a = Get-AzureRmApplicationInsights  -ResourceGroupName "xxx" -Name "xxx"

$b = $a.tags

# use $new_tags to store the tags which are not deleted
$new_tags=@{}

# if the key does not contain "appInsightsdemo11", it will not be deleted.
$b.Keys | %{ if(!$_.contains("appInsightsdemo11")){$new_tags.Add($_, $b[$_])}}

# then update the tags which does not have the one "appInsightsdemo11"
Set-AzureRmResource -ResourceGroupName "xxx" -ResourceName "xxx" -Tag $new_tags -force -ResourceType microsoft.insights/components

После выполнения вышеуказанной команды выполните командуснова командлет Get-AzureRmApplicationInsights.И вы можете видеть, что теги, содержащие appInsightsdemo11, были удалены.

enter image description here

...