Olá pessoal,
Venho trabalhado com Azure há 4 anos e sempre administrei as subscrições usando Powershell. Uma das coisas que me frustrava muito era trabalhar de forma assíncrona com os comandos do modulo do AzureRm. Para trabalhar de maneira assíncrona para realizar tarefas paralelamente iremos utilizar os comandos Start-Job, Wait-Job e Receive-Job.
Primeiro Autentique sua conexão com o comando Add-AzureRmAccount e selecione a subscrição desejada, em seguida, vamos agora armazenar o contexto da conexão em uma variável:
$Context = Get-AzureRmContext
Agora vamos criar um Job novo usando Start-Job e passando como argumento para o scriptblock o contexto armazenado no passo anterior:
Start-Job -Name 'Azure1' -ArgumentList $Context -ScriptBlock {
Param($Context)
Select-AzureRmContext -InputObject $Context
New-AzureRmPublicIpAddress -Name 'Resource-pip' -ResourceGroupName 'ResourceGroup1' -Location 'brazilsouth' -AllocationMethod Dynamic
}
Com o comando Wait-Job iremos aguardar a conclusão do job
Get-Job | Wait-Job
Utilizaremos o Receive-Job para recuperar o resultado do scriptblock
Get-Job | Receive-Job
Resultado final:
#Armazena o contexto de conexão da sessão na variavel
$Context = Get-AzureRmContext
#Inicia o Job Azure1 passando como argumento o contexto autenticado para dentro do scriptblock
Start-Job -Name 'Azure1' -ArgumentList $Context -ScriptBlock {
Param($Context)
Select-AzureRmContext -InputObject $Context
New-AzureRmPublicIpAddress -Name 'Resource-pip' -ResourceGroupName 'ResourceGroup1' -Location 'brazilsouth' -AllocationMethod Dynamic
}
#Aguarda o Job ficar com Status Completed
Get-Job | Wait-Job
#Visualizar os Resultados
Get-Job | Receive-Job
Nesse post vimos como utilizar os comandos Start-Job, Wait-Job e Receive-Job para trabalhar de maneira assíncrona com os comandos do modulo AzureRm.
Dúvidas? Sugestões? Comente!
Até a proxima!
1 Comment
up