Как легко пометить ресурсы Azure разными тегами

Сначала мы использовали Terraform для создания наших ресурсов вместе с правильной маркировкой. Но позже мы выяснили, что команда администраторов внесла некоторые изменения в ресурс вручную в рамках быстрых исправлений некоторых проблем и всего остального. В конце файл состояния терраформирования этих ресурсов не синхронизирован.

Теперь у нас есть требование обновить теги уже предоставленных ресурсов (используемых терраформ) с новыми дополнительными тегами к ним. Когда мы попытались добавить манифесты terraform с изменениями для тегов и выполнить план terraform, мы увидели, что некоторые ресурсы отображаются для замены, и нам не рекомендуется выполнять это .

Мы попытались вручную импортировать изменения, выполненные вручную из портала, в состояние терраформирования, чтобы мы могли применить изменения тегов из самого терраформирования. Но мы сталкиваемся с такими проблемами, как невозможность мгновенного обновления ресурсов с портала в файл состояния?

существует ли какой-либо автоматизированный способ пометить список ресурсов Azure в соответствии с тегами, указанными для каждого ресурса. и мы можем так легко обновить файл состояния?

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
138
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Для этого можно использовать Update-AzTag Azure PowerShell для обновления или добавления новых тегов к уже существующим ресурсам в вашей подписке. У меня есть несколько ресурсов, помеченных как Key1:Value1 в моем клиенте, где я пытаюсь изменить их на SampleKey:SampleValue. Ниже приведен сценарий, который помог мне обновить все теги в моем арендаторе.

$SubscriptionId = Get-AzSubscription -TenantId (Get-AzContext).Tenant
$replacedTags = @{"key1" = "value1"; "SampleKey" = "SampleValue";}
foreach($SubId in $SubscriptionId) {
    $ResourceId = "/subscriptions/"+$SubId.Id
    Update-AzTag -ResourceId $ResourceId -Tag $replacedTags -Operation Replace
}

РЕЗУЛЬТАТЫ

Возможно ли добиться этого с помощью команд оболочки Azure CLI, поскольку у нас есть только агенты на базе Linux. Мы пытаемся автоматизировать это с помощью пайплайнов azuredevops.

Vowneee 08.11.2022 08:26

@Vowneee, вы можете использовать обновление тега az. В вашем случае вы можете использовать следующий скрипт az tag update --resource-id /subscriptions/<SubscriptionId> --operation replace --tags <Tag1> <Tag2>.

SwethaKandikonda 09.11.2022 06:00

@SwethaKandikonda предоставила сценарий, который можно использовать в Azure CLI. На основе его ответа я хочу сделать дополнительную информацию. Если вы хотите автоматизировать это с помощью конвейера azuredevops, вот пример конвейера YAML:

# Starter pipeline

trigger:
- master

pool:
  vmImage: ubuntu-latest
steps:
- task: AzureCLI@2
  inputs:
    azureSubscription: 'your subscription'
    scriptType: 'pscore'
    scriptLocation: 'inlineScript'
    inlineScript: 'az tag update --resource-id /subscriptions/{ sub-id }/resourceGroups/{ rg }/providers/Microsoft.Storage/storageAccounts/{your saName} --operation replace --tags key1=value1 key3=value3'

Результат выполнения

Он автоматически пометит ресурс после успешного запуска конвейера.

но в azuredevops, как мы можем добавить разные теги с разными ресурсами в цикле? Это означает, что мы можем одновременно передавать разные списки тегов для разных списков ресурсов.

Vowneee 11.11.2022 15:11

Другие вопросы по теме