Há pouco tempo precisei modificar um parâmetro do Application Settings em mais de 50 Azure Web App e deveria ser bem simples com Powershell, pois testaria em um Web App, validaria e conseguiria replicar com algumas linhas de código.
Estava enganado, pois diferentemente do Azure Portal, onde eu consigo facilmente ir no Application Settings e modificar um ou mais parâmetros, então salvar as alterações sem perder nenhuma outra, no Powershell não é bem assim.

IMPORTANTE: Ao realizar a modificação, remoção ou inclusão de parâmetros e salvar, implica na reinicialização do Web App

Alterando com Powershell (forma errada)
Para alterar com Powershell, primeiramente me conectei ao Azure, utilizando UseDeviceAuthentication e em seguida modifiquei o contexto para a Subscription que estava utilizando
Em seguida, criei uma varíavel, passando como valor uma hashtable

e utilizei Set-AzWebApp para aplicar a variável e atualizar o valor do APPINSIGHTS_INSTRUMENTATIONKEY

Mas quando fui verificar no Azure Portal, para minha surpresa, todos os outros valores haviam sido apagados

Alterando com Powershell e mantendo os valores existentes
Vamos começar pegando as configurações do Web App onde vamos fazer as alterações, neste caso Application Settings

Em seguida, vamos criar um objeto, que terá função similar ao hashtable, para receber o nome e valor deste parâmetro

Vamos fazer uma verificação para saber se o parâmetro já existe ou não no Application Settings do Web App, caso já exista, apenas o valor do parâmetro é alterado, do contrário, o parâmetro todo será adicionado a variável com as configurações que coletamos no começo deste script

Então, iniciamos uma variável com valores que serão dispostos como hashtable, e passamos colocamos nome e valor de cada parâmetro da variável modificada no script para a hashtable

E por fim, rodamos o Set-AzWebApp

E finalizamos conferindo o Web App no Azure Portal

Deixe um comentário