Variáveis
Aplica-se a: Windows Azure Pack for Windows Server, System Center 2012 R2 Orchestrator
As variáveis do Automação são valores que estão disponíveis para todos os runbooks. Elas podem ser criadas, modificadas e recuperadas por meio do portal de gerenciamento, do Windows PowerShell ou de dentro um runbook. as variáveis Automação são úteis para os seguintes cenários:
Compartilhar um valor entre vários runbooks.
Compartilhar um valor entre vários trabalhos do mesmo runbook.
Gerenciar um valor no portal de gerenciamento ou por meio da linha de comando do Windows PowerShell que é usada por runbooks.
As variáveis Automação são mantidas para que continuem disponíveis mesmo que o runbook falhe. Isso também permite que um valor seja definido por um runbook e seja então usado por outro, ou seja usado pelo mesmo runbook na próxima vez que for executado.
Quando uma variável é criada, você deve especificar seu tipo de dados por meio da lista a seguir. Isso ocorre de modo que o portal de gerenciamento possa exibir o controle apropriado para o valor da variável. Você só pode atribuir um valor do tipo correto a uma variável.
Cadeia de caracteres
Inteiro
Booliano
Data e hora
Quando uma variável é criada, você pode especificar que ela seja armazenada criptografada. Quando uma variável é criptografada, ela é armazenada com segurança no banco de dados do SMA e seu valor não pode ser recuperado com o cmdlet Get-SmaVariable. O único modo de se recuperar um valor criptografado é por meio da atividade Get-AutomationVariable em um runbook. Você pode armazenar diversos valores do tipo definido para uma única variável, criando uma tabela de hash.
Cmdlets do Windows PowerShell
Os cmdlets na tabela a seguir são usados para criar e gerenciar variáveis com o Windows PowerShell em Service Management Automation.
Cmdlets |
Descrição |
---|---|
Recupera o valor de uma variável existente. |
|
Cria uma nova variável ou define o valor de uma variável existente. |
Atividades de runbook
As atividades na tabela a seguir são usadas para acessar variáveis em um runbook.
Atividades |
Descrição |
---|---|
Get-AutomationVariable |
Recupera o valor de uma variável existente. |
Set-AutomationVariable |
Define o valor de uma variável existente. |
Observação |
---|
Evite usar variáveis no parâmetro –Name de Get-AutomationVariable, já que isso pode complicar a descoberta de dependências entre runbooks e variáveis Automação. |
Criando uma variável nova variável de Automação
Para criar uma nova variável com o portal de gerenciamento
Selecione o espaço de trabalho Automação.
Na parte superior da janela, clique em Ativos.
Na parte inferior da janela, clique em Adicionar configuração.
Clique em Adicionar Variável.
Na lista suspensa Tipo, selecione um tipo de dados.
Digite um nome para a variável na caixa Nome.
Clique na seta à direita.
Digite um valor para a variável e especifique se deseja criptografá-la.
Clique na marca de seleção para salvar a nova variável.
Para criar uma nova variável com o Windows PowerShell em Service Management Automation
O cmdlet Set-SmaVariable cria uma nova variável e também define o valor de uma variável existente. Os comandos de exemplo a seguir mostram como criar uma variável do tipo cadeia de caracteres.
$web = 'https://MySMAServer'
$port = 9090
Set-SMAVariable –WebServiceEndpoint $web –Port $port –Name 'MyVariable' –Value 'My String'
Usando uma variável em um runbook
Use a atividade Get-AutomationVariable para usar uma variável em um runbook.
Para usar uma variável em um runbook
-
O código de exemplo a seguir mostra como definir e recuperar uma variável em um runbook. Neste exemplo, presume-se que variáveis do tipo número inteiro denominadas NumberOfIterations e NumberOfRunnings e uma variável do tipo cadeia de caracteres denominada SampleMessage já foram criadas.
$NumberOfIterations = Get-AutomationVariable -Name 'NumberOfIterations' $NumberOfRunnings = Get-AutomationVariable -Name 'NumberOfRunnings' $SampleMessage = Get-AutomationVariable -Name 'SampleMessage' Write-Output "Runbook has been run $NumberOfRunnings times." for ($i = 1; $i -le $NumberOfIterations; $i++) { Write-Output "$i`: $SampleMessage" } Set-AutomationVariable –Name NumberOfRunnings –Value (NumberOfRunngs += 1)