Grafische runbooks maken in Azure Automation

Belangrijk

Azure Automation Uitvoeren als-accounts, waaronder klassieke Uitvoeren als-accounts, zijn op 30 september 2023 buiten gebruik gesteld en vervangen door beheerde identiteiten. U kunt Uitvoeren als-accounts niet meer maken of vernieuwen via Azure Portal. Raadpleeg Migratie van een bestaand Run As-account naar beheerde identiteit voor meer informatie.

Alle runbooks in Azure Automation zijn Windows PowerShell-werkstromen. Grafische runbooks en grafische PowerShell Workflow-runbooks genereren PowerShell-code die door de Automation-werkrollen wordt uitgevoerd, maar die u niet kunt weergeven of wijzigen. U kunt een grafisch runbook converteren naar een grafisch PowerShell Workflow-runbook en omgekeerd. U kunt deze runbooks echter niet converteren naar een tekstueel runbook. Bovendien kan de grafische Editor van Automation geen tekstrunbook importeren.

Met grafische creatie kunt u runbooks maken voor Azure Automation zonder de complexiteit van de onderliggende Windows PowerShell- of PowerShell Workflow-code. U kunt activiteiten toevoegen aan het canvas vanuit een bibliotheek met cmdlets en runbooks, deze aan elkaar koppelen en deze configureren om een werkstroom te vormen. Als u ooit met System Center Orchestrator of Service Management Automation (SMA) hebt gewerkt, moet grafische creatie er bekend uitzien. Dit artikel bevat een inleiding tot de concepten die u nodig hebt om aan de slag te gaan met het maken van een grafisch runbook.

Notitie

U kunt geen digitale handtekening toevoegen aan een grafisch runbook. Deze functie wordt niet ondersteund in Azure Automation.

Overzicht van grafische editor

U kunt de grafische editor openen in Azure Portal door een grafisch runbook te maken of te bewerken.

Graphical workspace

In de volgende secties worden de besturingselementen in de grafische editor beschreven.

Besturingselement canvas

Met het besturingselement Canvas kunt u uw runbook ontwerpen. U kunt activiteiten uit de knooppunten in het besturingselement Bibliotheek toevoegen aan het runbook en deze verbinden met koppelingen om runbooklogica te definiëren. Onder aan het canvas zijn er besturingselementen waarmee u kunt in- en uitzoomen.

Bibliotheekbeheer

Met het besturingselement Bibliotheek kunt u activiteiten selecteren die u aan uw runbook kunt toevoegen. U voegt ze toe aan het canvas, waar u ze kunt verbinden met andere activiteiten. Het besturingselement Bibliotheek bevat de secties die zijn gedefinieerd in de volgende tabel.

Sectie Omschrijving
Cmdlets Alle cmdlets die kunnen worden gebruikt in uw runbook. Cmdlets zijn ingedeeld op module. Alle modules die u in uw Automation-account hebt geïnstalleerd, zijn beschikbaar.
Runbooks De runbooks in uw Automation-account. U kunt deze runbooks toevoegen aan het canvas om te worden gebruikt als onderliggende runbooks. Alleen runbooks van hetzelfde kerntype als het runbook dat wordt bewerkt, worden weergegeven. Voor grafische runbooks worden alleen PowerShell-runbooks weergegeven. Voor grafische PowerShell Workflow-runbooks worden alleen runbooks op basis van PowerShell Workflow weergegeven.
Activa De automation-assets in uw Automation-account die u in uw runbook kunt gebruiken. Als u een asset toevoegt aan een runbook, wordt een werkstroomactiviteit toegevoegd waarmee de geselecteerde asset wordt ophaalt. In het geval van variabele assets kunt u selecteren of u een activiteit wilt toevoegen om de variabele op te halen of de variabele in te stellen.
Runbookbesturing Beheer activiteiten die kunnen worden gebruikt in uw huidige runbook. Een verbindingsactiviteit neemt meerdere invoer en wacht totdat alles is voltooid voordat u doorgaat met de werkstroom. Met een codeactiviteit worden een of meer regels PowerShell- of PowerShell Workflow-code uitgevoerd, afhankelijk van het grafische runbooktype. U kunt deze activiteit gebruiken voor aangepaste code of voor functionaliteit die moeilijk te bereiken is met andere activiteiten.

Configuratiebeheer

Met het besturingselement Configuratie kunt u details opgeven voor een object dat is geselecteerd op het canvas. Welke eigenschappen beschikbaar zijn in dit besturingselement, is afhankelijk van het type object dat is geselecteerd. Wanneer u een optie kiest in het besturingselement Configuratie, worden er extra blades geopend voor meer informatie.

Besturingselement testen

Het besturingselement Test wordt niet weergegeven wanneer de grafische editor voor het eerst wordt gestart. Het wordt geopend wanneer u interactief een grafisch runbook test.

Activiteiten gebruiken

Activiteiten zijn de bouwstenen van een runbook. Een activiteit kan een PowerShell-cmdlet, een onderliggend runbook of een werkstroom zijn. U kunt een activiteit toevoegen aan het runbook door er met de rechtermuisknop op te klikken in het besturingselement Bibliotheek en Toevoegen aan canvas te selecteren. U kunt vervolgens op de activiteit klikken en slepen om deze ergens op het canvas te plaatsen dat u wilt. De locatie van de activiteit op het canvas heeft geen invloed op de werking van het runbook. U kunt uw runbook zo in delen dat u het meest geschikt vindt om de werking ervan te visualiseren.

Add to canvas

Selecteer een activiteit op het canvas om de eigenschappen en parameters ervan te configureren op de blade Configuratie. U kunt het label van de activiteit wijzigen in een naam die u beschrijvend vindt. Het runbook voert nog steeds de oorspronkelijke cmdlet uit. U wijzigt gewoon de weergavenaam die de grafische editor gebruikt. Houd er rekening mee dat het label uniek moet zijn binnen het runbook.

Parametersets

Een parameterset definieert de verplichte en optionele parameters die waarden accepteren voor een bepaalde cmdlet. Alle cmdlets hebben ten minste één parameterset en sommige hebben verschillende sets. Als een cmdlet meerdere parametersets heeft, moet u de cmdlet selecteren die u wilt gebruiken voordat u parameters kunt configureren. U kunt de parameterset wijzigen die door een activiteit wordt gebruikt door parameterset te selecteren en een andere set te kiezen. In dit geval gaan alle parameterwaarden die u al hebt geconfigureerd verloren.

In het volgende voorbeeld heeft de Cmdlet Get-AzVM drie parametersets. In het voorbeeld wordt één set met de naam ListLocationVirtualMachinesParamSet gebruikt, met één optionele parameter, om de locatie te retourneren voor de virtuele machines die moeten worden weergegeven. In het voorbeeld wordt ook de parameter GetVirtualMachineInResourceGroupParamSet gebruikt om de virtuele machine op te geven die moet worden geretourneerd. Deze set heeft twee verplichte parameters en één optionele parameter.

Parameter set

Parameterwaarden

Wanneer u een waarde voor een parameter opgeeft, selecteert u een gegevensbron om te bepalen hoe de waarde wordt opgegeven. De gegevensbronnen die beschikbaar zijn voor een bepaalde parameter, zijn afhankelijk van de geldige waarden voor die parameter. Null is bijvoorbeeld geen beschikbare optie voor een parameter die geen null-waarden toestaat.

Gegevensbron Omschrijving
Constante waarde Typ een waarde voor de parameter. Deze gegevensbron is alleen beschikbaar voor de volgende gegevenstypen: Int32, Int64, Tekenreeks, Booleaanse waarde, Datum/tijd, Switch.
Activiteitsuitvoer Gebruik uitvoer van een activiteit die voorafgaat aan de huidige activiteit in de werkstroom. Alle geldige activiteiten worden vermeld. Gebruik voor de parameterwaarde alleen de activiteit die de uitvoer produceert. Als de activiteit een object met meerdere eigenschappen uitvoert, kunt u de naam van een specifieke eigenschap typen nadat u de activiteit hebt geselecteerd.
Runbookinvoer Selecteer een runbookinvoer als invoer voor de activiteitsparameter.
Variabele asset Selecteer een Automation-variabele als invoer.
Referentieasset Selecteer een Automation-referentie als invoer.
Certificaatasset Selecteer een Automation-certificaat als invoer.
Verbinding maken ionasset Selecteer een Automation-verbinding als invoer.
PowerShell-expressie Geef een eenvoudige PowerShell-expressie op. De expressie wordt geëvalueerd vóór de activiteit en het resultaat wordt gebruikt voor de parameterwaarde. U kunt variabelen gebruiken om te verwijzen naar de uitvoer van een activiteit of een runbookinvoerparameter.
Niet geconfigureerd Wis een waarde die eerder is geconfigureerd.

Optionele aanvullende parameters

Alle cmdlets hebben de mogelijkheid om extra parameters op te geven. Dit zijn algemene PowerShell-parameters of andere aangepaste parameters. De grafische editor bevat een tekstvak waarin u parameters kunt opgeven met behulp van de PowerShell-syntaxis. Als u bijvoorbeeld de Verbose algemene parameter wilt gebruiken, moet u opgeven -Verbose:$True.

Activiteit opnieuw proberen

Met de functionaliteit voor opnieuw proberen voor een activiteit kan deze meerdere keren worden uitgevoerd totdat aan een bepaalde voorwaarde wordt voldaan, net als een lus. U kunt deze functie gebruiken voor activiteiten die meerdere keren moeten worden uitgevoerd, foutgevoelig zijn, mogelijk meerdere pogingen nodig hebben om te slagen of de uitvoergegevens van de activiteit testen op geldige gegevens.

Wanneer u opnieuw proberen voor een activiteit inschakelt, kunt u een vertraging en een voorwaarde instellen. De vertraging is de tijd (gemeten in seconden of minuten) die het runbook wacht voordat de activiteit opnieuw wordt uitgevoerd. Als u geen vertraging opgeeft, wordt de activiteit opnieuw uitgevoerd direct nadat deze is voltooid.

Screenshot of the Enable retry feature settings.

De voorwaarde voor opnieuw proberen is een PowerShell-expressie die wordt geëvalueerd na elke keer dat de activiteit wordt uitgevoerd. Als de expressie wordt omgezet in Waar, wordt de activiteit opnieuw uitgevoerd. Als de expressie wordt omgezet in Onwaar, wordt de activiteit niet opnieuw uitgevoerd en wordt het runbook verplaatst naar de volgende activiteit.

Screenshot showing the Retry until this condition is true field and examples of PowerShell expressions that can be used in the retry condition.

De voorwaarde voor opnieuw proberen kan een variabele met de naam RetryData gebruiken die toegang biedt tot informatie over de nieuwe pogingen van de activiteit. Deze variabele heeft de eigenschappen in de volgende tabel:

Eigenschappen Beschrijving
NumberOfAttempts Aantal keren dat de activiteit is uitgevoerd.
Output Uitvoer van de laatste uitvoering van de activiteit.
TotalDuration De tijd is verstreken sinds de activiteit voor het eerst is gestart.
StartedAt Tijd (in UTC-indeling) toen de activiteit voor het eerst werd gestart.

Hier volgen voorbeelden van voorwaarden voor opnieuw proberen van activiteiten.

# Run the activity exactly 10 times.
$RetryData.NumberOfAttempts -ge 10
# Run the activity repeatedly until it produces any output.
$RetryData.Output.Count -ge 1
# Run the activity repeatedly until 2 minutes has elapsed.
$RetryData.TotalDuration.TotalMinutes -ge 2

Nadat u een voorwaarde voor opnieuw proberen voor een activiteit hebt geconfigureerd, bevat de activiteit twee visuele aanwijzingen om u eraan te herinneren. De ene wordt weergegeven in de activiteit en de andere wordt weergegeven wanneer u de configuratie van de activiteit controleert.

Activity Retry Visual Indicators

Besturingselement voor werkstroomscript

Een besturingselement voor werkstroomscripts is een speciale activiteit die PowerShell- of PowerShell Workflow-script accepteert, afhankelijk van het type grafisch runbook dat wordt geschreven. Dit besturingselement biedt functionaliteit die mogelijk niet op een andere wijze beschikbaar is. Het kan geen parameters accepteren, maar kan variabelen gebruiken voor activiteitsuitvoer en runbookinvoerparameters. Elke uitvoer van de activiteit wordt toegevoegd aan de databus. Een uitzondering is uitvoer zonder uitgaande koppeling. In dat geval wordt de uitvoer toegevoegd aan de uitvoer van het runbook.

Met de volgende code worden bijvoorbeeld datumberekeningen uitgevoerd met behulp van een runbookinvoervariabele met de naam NumberOfDays. Vervolgens wordt een berekende Datum/tijd-waarde als uitvoer verzonden om te worden gebruikt door volgende activiteiten in het runbook.

$DateTimeNow = (Get-Date).ToUniversalTime()
$DateTimeStart = ($DateTimeNow).AddDays(-$NumberOfDays)}
$DateTimeStart

Een koppeling in een grafisch runbook verbindt twee activiteiten. Deze wordt op het canvas weergegeven als een pijl die wijst van de bronactiviteit naar de doelactiviteit. De activiteiten worden uitgevoerd in de richting van de pijl, waarbij de doelactiviteit begint nadat de bronactiviteit is voltooid.

U kunt een koppeling tussen twee activiteiten maken door de bronactiviteit te selecteren en op de cirkel onder aan de shape te klikken. Sleep de pijl naar de doelactiviteit en release.

Create a link

Selecteer de koppeling om de eigenschappen ervan te configureren op de blade Configuratie. Eigenschappen bevatten het koppelingstype, dat wordt beschreven in de volgende tabel.

Koppelingstype Omschrijving
Pijplijn De doelactiviteit wordt eenmaal uitgevoerd voor elke objectuitvoer van de bronactiviteit. De doelactiviteit wordt niet uitgevoerd als de bronactiviteit geen uitvoer oplevert. Uitvoer van de bronactiviteit is beschikbaar als een object.
Sequence De doelactiviteit wordt slechts eenmaal uitgevoerd wanneer deze uitvoer van de bronactiviteit ontvangt. Uitvoer van de bronactiviteit is beschikbaar als een matrix met objecten.

Runbookactiviteit starten

Een grafisch runbook begint met activiteiten die geen binnenkomende koppeling hebben. Er is vaak slechts één activiteit die fungeert als de startactiviteit voor het runbook. Als meerdere activiteiten geen binnenkomende koppeling hebben, start het runbook door ze parallel uit te voeren. Deze volgt de koppelingen om andere activiteiten uit te voeren zodra ze zijn voltooid.

Wanneer u een voorwaarde opgeeft op een koppeling, wordt de doelactiviteit alleen uitgevoerd als de voorwaarde wordt omgezet in Waar. Doorgaans gebruikt u een ActivityOutput variabele in een voorwaarde om de uitvoer van de bronactiviteit op te halen.

Voor een pijplijnkoppeling moet u een voorwaarde voor één object opgeven. Het runbook evalueert de voorwaarde voor elke objectuitvoer door de bronactiviteit. Vervolgens wordt de doelactiviteit uitgevoerd voor elk object dat voldoet aan de voorwaarde. Met een bronactiviteit van Get-AzVMbijvoorbeeld, kunt u de volgende syntaxis voor een voorwaardelijke pijplijnkoppeling gebruiken om alleen virtuele machines op te halen in de resourcegroep met de naam Group1.

$ActivityOutput['Get Azure VMs'].Name -match "Group1"

Voor een reekskoppeling evalueert het runbook slechts één keer de voorwaarde, omdat één matrix met alle objecten uit de bronactiviteit wordt geretourneerd. Daarom kan het runbook geen reekskoppeling gebruiken om te filteren, zoals met een pijplijnkoppeling. Met de reekskoppeling kunt u eenvoudig bepalen of de volgende activiteit al dan niet wordt uitgevoerd.

Neem bijvoorbeeld de volgende set activiteiten in het runbook VM starten:

Conditional Link with Sequences

Het runbook maakt gebruik van drie verschillende reekskoppelingen die waarden van de invoerparameters VMName verifiëren en ResourceGroupName de juiste actie bepalen die moet worden ondernomen. Mogelijke acties zijn het starten van één virtuele machine, het starten van alle VM's in de resourcegroep of het starten van alle VM's in een abonnement. Voor de reekskoppeling tussen Connect to Azure en Get single VM, hier volgt de voorwaardelogica:

<#
Both VMName and ResourceGroupName runbook input parameters have values
#>
(
(($VMName -ne $null) -and ($VMName.Length -gt 0))
) -and (
(($ResourceGroupName -ne $null) -and ($ResourceGroupName.Length -gt 0))
)

Wanneer u een voorwaardelijke koppeling gebruikt, worden de gegevens die beschikbaar zijn van de bronactiviteit naar andere activiteiten in die vertakking gefilterd op de voorwaarde. Als een activiteit de bron is van meerdere koppelingen, zijn de gegevens die beschikbaar zijn voor activiteiten in elke vertakking afhankelijk van de voorwaarde in de koppeling die verbinding maakt met die vertakking.

Met de Start-AzVM activiteit in het onderstaande runbook worden bijvoorbeeld alle virtuele machines gestart. Het bevat twee voorwaardelijke koppelingen. De eerste voorwaardelijke koppeling gebruikt de expressie $ActivityOutput['Start-AzVM'].IsSuccessStatusCode -eq $true om te filteren als de Start-AzVM activiteit is voltooid. De tweede voorwaardelijke koppeling gebruikt de expressie $ActivityOutput['Start-AzVM'].IsSuccessStatusCode -ne $true om te filteren als de activiteit de Start-AzVm virtuele machine niet start.

Conditional link example

Elke activiteit die volgt op de eerste koppeling en de uitvoer van de activiteit gebruikt, Get-AzureVM haalt alleen de virtuele machines op die zijn gestart op het moment dat Get-AzureVM deze werd uitgevoerd. Elke activiteit die volgt op de tweede koppeling, krijgt alleen de virtuele machines die zijn gestopt op het moment dat Get-AzureVM ze werden uitgevoerd. Elke activiteit na de derde koppeling haalt alle virtuele machines op, ongeacht de actieve status.

Verbindingen gebruiken

Een verbinding is een speciale activiteit die wacht totdat alle binnenkomende vertakkingen zijn voltooid. Hierdoor kan het runbook meerdere activiteiten parallel uitvoeren en ervoor zorgen dat alles is voltooid voordat u verdergaat.

Hoewel een verbinding een onbeperkt aantal binnenkomende koppelingen kan hebben, kan slechts één van deze koppelingen een pijplijn zijn. Het aantal binnenkomende reekskoppelingen is niet beperkt. U kunt de verbinding maken met meerdere binnenkomende pijplijnkoppelingen en het runbook opslaan, maar dit mislukt wanneer het wordt uitgevoerd.

Het onderstaande voorbeeld maakt deel uit van een runbook waarmee een set virtuele machines wordt gestart en tegelijkertijd patches worden gedownload die op die machines moeten worden toegepast. Er wordt een verbinding gebruikt om ervoor te zorgen dat beide processen zijn voltooid voordat het runbook wordt voortgezet.

Junction

Werken met cycli

Een cyclus wordt gevormd wanneer een doelactiviteit terugverwijst naar de bronactiviteit of naar een andere activiteit die uiteindelijk weer wordt gekoppeld aan de bron. Grafische creatie biedt momenteel geen ondersteuning voor cycli. Als uw runbook een cyclus heeft, wordt het op de juiste manier opgeslagen, maar wordt er een fout weergegeven wanneer het wordt uitgevoerd.

Cycle

Gegevens delen tussen activiteiten

Alle gegevens die door een activiteit worden uitgevoerd met een uitgaande koppeling, worden naar de databus voor het runbook geschreven. Elke activiteit in het runbook kan gegevens in de databus gebruiken om parameterwaarden te vullen of in scriptcode op te nemen. Een activiteit heeft toegang tot de uitvoer van eerdere activiteiten in de werkstroom.

Hoe de gegevens naar de databus worden geschreven, is afhankelijk van het type koppeling voor de activiteit. Voor een pijplijnkoppeling worden de gegevens uitgevoerd als meerdere objecten. Voor een reekskoppeling worden de gegevens uitgevoerd als een matrix. Als er slechts één waarde is, wordt deze uitgevoerd als een matrix met één element.

Uw runbook heeft twee manieren om toegang te krijgen tot gegevens in de databus:

  • Gebruik een gegevensbron voor de uitvoer van een activiteit.
  • Gebruik een PowerShell-expressiegegevensbron.

Het eerste mechanisme maakt gebruik van een gegevensbron voor activiteituitvoer om een parameter van een andere activiteit te vullen. Als de uitvoer een object is, kan het runbook één eigenschap opgeven.

activity output

Met het tweede mechanisme voor gegevenstoegang wordt de uitvoer van een activiteit in een PowerShell-expressiegegevensbron of een werkstroomscriptactiviteit met een ActivityOutput variabele opgehaald met behulp van de onderstaande syntaxis. Als de uitvoer een object is, kan uw runbook één eigenschap opgeven.

$ActivityOutput['Activity Label']
$ActivityOutput['Activity Label'].PropertyName

Controlepunten gebruiken

U kunt controlepunten instellen in een grafisch PowerShell Workflow-runbook door checkpoint-runbook te selecteren voor elke activiteit. Dit zorgt ervoor dat een controlepunt wordt ingesteld nadat de activiteit is uitgevoerd.

Checkpoint

Controlepunten zijn alleen ingeschakeld in grafische PowerShell Workflow-runbooks en zijn niet beschikbaar in grafische runbooks. Als het runbook Gebruikmaakt van Azure-cmdlets, moet deze een controlepuntactiviteit met een Connect-AzAccount activiteit volgen. De verbindingsbewerking wordt gebruikt als het runbook wordt onderbroken en opnieuw moet worden opgestart vanaf dit controlepunt op een andere werkrol.

Runbookinvoer verwerken

Voor een runbook is invoer vereist van een gebruiker die het runbook start via Azure Portal of vanuit een ander runbook, als de huidige als onderliggend runbook wordt gebruikt. Voor een runbook waarmee een virtuele machine wordt gemaakt, moet de gebruiker bijvoorbeeld informatie opgeven zoals de naam van de virtuele machine en andere eigenschappen telkens wanneer het runbook wordt gestart.

Het runbook accepteert invoer door een of meer invoerparameters te definiëren. De gebruiker biedt waarden voor deze parameters telkens wanneer het runbook wordt gestart. Wanneer de gebruiker het runbook start met behulp van Azure Portal, wordt de gebruiker gevraagd om waarden op te geven voor elke invoerparameter die wordt ondersteund door het runbook.

Wanneer u uw runbook ontwerpt, hebt u toegang tot de invoerparameters door te klikken op Invoer en uitvoer op de werkbalk van het runbook. Hiermee opent u het besturingselement Invoer en Uitvoer, waar u een bestaande invoerparameter kunt bewerken of een nieuwe kunt maken door op Invoer toevoegen te klikken.

Add input

Elke invoerparameter wordt gedefinieerd door de eigenschappen in de volgende tabel:

Eigenschappen Beschrijving
Naam Vereist. De naam van de parameter. De naam moet uniek zijn binnen het runbook. Deze moet beginnen met een letter en mag alleen letters, cijfers en onderstrepingstekens bevatten. De naam mag geen spatie bevatten.
Omschrijving Optioneel. Beschrijving van het doel voor de invoerparameter.
Type Optioneel. Het gegevenstype dat wordt verwacht voor de parameterwaarde. Azure Portal biedt een geschikt besturingselement voor het gegevenstype voor elke parameter wanneer u om invoer wordt gevraagd. Ondersteunde parametertypen zijn Tekenreeks, Int32, Int64, Decimal, Booleaanse waarde, DateTime en Object. Als een gegevenstype niet is geselecteerd, wordt het standaard ingesteld op Tekenreeks.
Verplicht Optioneel. Instelling die aangeeft of er een waarde moet worden opgegeven voor de parameter. Als u kiest yes, moet er een waarde worden opgegeven wanneer het runbook wordt gestart. Als u kiest no, is een waarde niet vereist wanneer het runbook wordt gestart en kan een standaardwaarde worden gebruikt. Het runbook kan niet worden gestart als u geen waarde opgeeft voor elke verplichte parameter waarvoor geen standaardwaarde is gedefinieerd.
Standaardwaarde Optioneel. De waarde die wordt gebruikt voor een parameter als er geen wordt doorgegeven wanneer het runbook wordt gestart. Als u een standaardwaarde wilt instellen, kiest u Custom. Selecteer None deze optie als u geen standaardwaarde wilt opgeven.

Runbookuitvoer verwerken

Met grafische creatie worden gegevens opgeslagen die zijn gemaakt door activiteiten die geen uitgaande koppeling naar de uitvoer van het runbook hebben. De uitvoer wordt opgeslagen met de runbooktaak en is beschikbaar voor een bovenliggend runbook wanneer het runbook als onderliggend runbook wordt gebruikt.

Werken met PowerShell-expressies

Een van de voordelen van grafische creatie is dat u hiermee een runbook kunt bouwen met minimale kennis van PowerShell. Op dit moment moet u echter een beetje PowerShell weten voor het invullen van bepaalde parameterwaarden en voor het instellen van koppelingsvoorwaarden. Deze sectie bevat een korte inleiding tot PowerShell-expressies. Volledige details van PowerShell zijn beschikbaar bij Scripting met Windows PowerShell.

Een PowerShell-expressie gebruiken als gegevensbron

U kunt een PowerShell-expressie als gegevensbron gebruiken om de waarde van een activiteitsparameter te vullen met de resultaten van PowerShell-code. De expressie kan één regel code zijn waarmee een eenvoudige functie of meerdere regels worden uitgevoerd die complexe logica uitvoeren. Uitvoer van een opdracht die niet is toegewezen aan een variabele, wordt uitgevoerd op de parameterwaarde.

Met de volgende opdracht wordt bijvoorbeeld de huidige datum uitgevoerd.

Get-Date

Het volgende codefragment bouwt een tekenreeks van de huidige datum en wijst deze toe aan een variabele. De code verzendt de inhoud van de variabele naar de uitvoer.

$string = "The current date is " + (Get-Date)
$string

Met de volgende opdrachten wordt de huidige datum geëvalueerd en wordt een tekenreeks geretourneerd die aangeeft of de huidige dag een weekend of een weekdag is.

$date = Get-Date
if (($date.DayOfWeek = "Saturday") -or ($date.DayOfWeek = "Sunday")) { "Weekend" }
else { "Weekday" }

Activiteitsuitvoer gebruiken

Als u de uitvoer van een vorige activiteit in uw runbook wilt gebruiken, gebruikt u de ActivityOutput variabele met de volgende syntaxis.

$ActivityOutput['Activity Label'].PropertyName

U kunt bijvoorbeeld een activiteit hebben met een eigenschap waarvoor de naam van een virtuele machine is vereist. In dit geval kan uw runbook de volgende expressie gebruiken.

$ActivityOutput['Get-AzureVM'].Name

Als voor de eigenschap het virtuele-machineobject is vereist in plaats van alleen een naam, retourneert het runbook het hele object met behulp van de volgende syntaxis.

$ActivityOutput['Get-AzureVM']

Het runbook kan de uitvoer van een activiteit in een complexere expressie gebruiken, zoals de volgende. Met deze expressie wordt tekst samengevoegd met de naam van de virtuele machine.

"The computer name is " + $ActivityOutput['Get-AzureVM'].Name

Waarden vergelijken

Gebruik vergelijkingsoperatoren om waarden te vergelijken of te bepalen of een waarde overeenkomt met een opgegeven patroon. Een vergelijking retourneert een waarde van Waar of Onwaar.

Met de volgende voorwaarde wordt bijvoorbeeld bepaald of de virtuele machine van een benoemde Get-AzureVM activiteit momenteel is gestopt.

$ActivityOutput["Get-AzureVM"].PowerState -eq "Stopped"

De volgende voorwaarde bepaalt of dezelfde virtuele machine een andere status heeft dan gestopt.

$ActivityOutput["Get-AzureVM"].PowerState -ne "Stopped"

U kunt meerdere voorwaarden in uw runbook samenvoegen met behulp van een logische operator, zoals -and of -or. Met de volgende voorwaarde wordt bijvoorbeeld gecontroleerd of de virtuele machine in het vorige voorbeeld de status Gestopt of Gestopt heeft.

($ActivityOutput["Get-AzureVM"].PowerState -eq "Stopped") -or ($ActivityOutput["Get-AzureVM"].PowerState -eq "Stopping")

Hashtables gebruiken

Hashtables zijn naam-waardeparen die handig zijn voor het retourneren van een set waarden. Mogelijk ziet u ook een hashtabel die wordt aangeduid als een woordenlijst. Eigenschappen voor bepaalde activiteiten verwachten een hashtabel in plaats van een eenvoudige waarde.

Maak een hashtabel met behulp van de volgende syntaxis. Het kan een willekeurig aantal vermeldingen bevatten, maar elk item wordt gedefinieerd door een naam en waarde.

@{ <name> = <value>; [<name> = <value> ] ...}

Met de volgende expressie wordt bijvoorbeeld een hashtabel gemaakt die moet worden gebruikt als gegevensbron voor een activiteitsparameter die een hashtabel met waarden verwacht voor een internetzoekopdracht.

$query = "Azure Automation"
$count = 10
$h = @{'q'=$query; 'lr'='lang_ja';  'count'=$Count}
$h

In het volgende voorbeeld wordt uitvoer gebruikt van een activiteit die wordt aangeroepen Get Twitter Connection om een hashtabel te vullen.

@{'ApiKey'=$ActivityOutput['Get Twitter Connection'].ConsumerAPIKey;
    'ApiSecret'=$ActivityOutput['Get Twitter Connection'].ConsumerAPISecret;
    'AccessToken'=$ActivityOutput['Get Twitter Connection'].AccessToken;
    'AccessTokenSecret'=$ActivityOutput['Get Twitter Connection'].AccessTokenSecret}

Verifiëren bij Azure-resources

Runbooks in Azure Automation die Azure-resources beheren, vereisen verificatie bij Azure. Beheerde identiteiten is het standaardmechanisme dat een Automation-runbook gebruikt voor toegang tot Azure Resource Manager-resources in uw abonnement. U kunt deze functionaliteit toevoegen aan een grafisch runbook door het volgende runbook te importeren in het Automation-account, dat gebruikmaakt van de door het systeem toegewezen beheerde identiteit van het automation-account om Azure-resources te verifiëren en te openen.

wget https://raw.githubusercontent.com/azureautomation/runbooks/master/Utility/AzMI/AzureAutomationTutorialWithIdentityGraphical.graphrunbook -outfile AzureAutomationTutorialWithIdentityGraphical.graphrunbook

Een grafisch runbook exporteren

U kunt alleen de gepubliceerde versie van een grafisch runbook exporteren. Als het runbook nog niet is gepubliceerd, is de knop Exporteren uitgeschakeld. Wanneer u op de knop Exporteren klikt, wordt het runbook gedownload naar uw lokale computer. De naam van het bestand komt overeen met de naam van het runbook met de extensie .graphrunbook .

Een grafisch runbook importeren

U kunt een grafisch of grafisch PowerShell Workflow-runbookbestand importeren door de optie Importeren te selecteren bij het toevoegen van een runbook. Wanneer u het te importeren bestand selecteert, kunt u dezelfde naam behouden of een nieuw bestand opgeven. In het veld Runbooktype wordt het type runbook weergegeven nadat het geselecteerde bestand is beoordeeld. Als u probeert een ander type te selecteren dat niet juist is, geeft de grafische editor een bericht weer dat er potentiële conflicten zijn en dat er syntaxisfouten kunnen optreden tijdens de conversie.

Import runbook

Een grafisch runbook testen

Elk grafisch runbook in Azure Automation heeft een conceptversie en een gepubliceerde versie. U kunt alleen de gepubliceerde versie uitvoeren, terwijl u alleen de conceptversie kunt bewerken. De gepubliceerde versie wordt niet beïnvloed door wijzigingen in de conceptversie. Wanneer de conceptversie gereed is voor gebruik, publiceert u deze, die de huidige gepubliceerde versie overschrijft met uw Concept-versie.

U kunt de conceptversie van een runbook testen in Azure Portal terwijl de gepubliceerde versie ongewijzigd blijft. U kunt ook een nieuw runbook testen voordat het is gepubliceerd, zodat u kunt controleren of het runbook correct werkt voordat er versies worden vervangen. Testen van een runbook voert de conceptversie uit en zorgt ervoor dat alle acties die worden uitgevoerd, zijn voltooid. Er wordt geen taakgeschiedenis gemaakt, maar in het deelvenster Testuitvoer wordt de uitvoer weergegeven.

Open het besturingselement Test voor uw grafische runbook door het runbook te openen voor bewerken en vervolgens op het deelvenster Testen te klikken. Het besturingselement Test vraagt om invoerparameters en u kunt het runbook starten door op Start te klikken.

Een grafisch runbook publiceren

Publiceer een grafisch runbook door het runbook te openen voor bewerking en klik vervolgens op Publiceren. Mogelijke statussen voor het runbook zijn:

  • Nieuw: het runbook is nog niet gepubliceerd.
  • Gepubliceerd: het runbook is gepubliceerd.
  • Bij bewerken: het runbook is bewerkt nadat het is gepubliceerd en de concept- en gepubliceerde versies verschillen.

Runbook statuses

U kunt terugkeren naar de gepubliceerde versie van een runbook. Met deze bewerking worden alle wijzigingen weggegooid die zijn aangebracht sinds het runbook voor het laatst is gepubliceerd. De conceptversie van het runbook wordt vervangen door de gepubliceerde versie.

Volgende stappen