Azure Automation でグラフィカル Runbook を作成するAuthor graphical runbooks in Azure Automation

Azure Automation の Runbook はすべて Windows PowerShell ワークフローです。All runbooks in Azure Automation are Windows PowerShell workflows. グラフィカル Runbook とグラフィカル PowerShell ワークフロー Runbook は、Automation ワーカーが実行する PowerShell コードを生成しますが、これを表示したり変更したりすることはできません。Graphical runbooks and graphical PowerShell Workflow runbooks generate PowerShell code that the Automation workers run but that you cannot view or modify. グラフィカル Runbook をグラフィカル PowerShell ワークフロー Runbook に変換することも、その逆を行うこともできます。You can convert a graphical runbook to a graphical PowerShell Workflow runbook, and vice versa. ただし、これらの Runbook をテキスト形式の Runbook に変換することはできません。However, you can't convert these runbooks to a textual runbook. また、Automation のグラフィカル エディターでは、テキスト形式の Runbook をインポートできません。Additionally, the Automation graphical editor can't import a textual runbook.

グラフィカル作成では、基になる Windows PowerShell または PowerShell Workflow の複雑なコードを使用しなくても、Azure Automation の Runbook を作成することができます。Graphical authoring allows you to create runbooks for Azure Automation without the complexities of the underlying Windows PowerShell or PowerShell Workflow code. コマンドレットや Runbook のライブラリからキャンバスにアクティビティを追加し、それらをリンクして、ワークフローを形成するように構成できます。You can add activities to the canvas from a library of cmdlets and runbooks, link them together, and configure them to form a workflow. これまでに System Center Orchestrator または Service Management Automation (SMA) で作業したことがあれば、グラフィカル作成には見覚えがあるはずです。If you have ever worked with System Center Orchestrator or Service Management Automation (SMA), graphical authoring should look familiar. この記事では、グラフィカル Runbook の作成を開始するうえで必要な概念について説明します。This article provides an introduction to the concepts you need to get started creating a graphical runbook.

グラフィカル エディターの概要Overview of graphical editor

Azure ポータルでグラフィカル Runbook を作成または編集することで、グラフィカル エディターを開くことができます。You can open the graphical editor in the Azure portal by creating or editing a graphical runbook.

グラフィカル ワークスペース

次のセクションでは、グラフィカル エディターのコントロールについて説明します。The following sections describe the controls in the graphical editor.

Canvas コントロールCanvas control

キャンバス コントロールを使用すると、Runbook を設計できます。The Canvas control allows you to design your runbook. ライブラリ コントロールのノードから Runbook にアクティビティを追加し、それらをリンクで接続して Runbook のロジックを定義できます。You can add activities from the nodes in the Library control to the runbook and connect them with links to define runbook logic. キャンバスの下部にはコントロールがあり、それを使用して拡大および縮小できます。At the bottom of the canvas, there are controls that allow you to zoom in and out.

ライブラリ コントロールLibrary control

ライブラリ コントロールを使用すると、Runbook に追加するアクティビティを選択できます。The Library control allows you to select activities to add to your runbook. それらをキャンバスに追加し、そこで他のアクティビティに接続できます。You add them to the canvas, where you can connect them to other activities. ライブラリ コントロールには、次の表に定義されているセクションが含まれています。The Library control includes the sections defined in the following table.

SectionSection 説明Description
コマンドレットCmdlets Runbook で使用できるすべてのコマンドレット。All the cmdlets that can be used in your runbook. コマンドレットはモジュールごとに整理されます。Cmdlets are organized by module. Automation アカウントにインストールしたすべてのモジュールを使用できます。All the modules that you have installed in your Automation account are available.
RunbooksRunbooks お使いの Automation アカウントの Runbook。The runbooks in your Automation account. これらの Runbook はキャンバスに追加して、子 Runbook として使用できます。You can add these runbooks to the canvas to be used as child runbooks. 編集している Runbook と同じコアの種類の Runbook のみが表示されます。Only runbooks of the same core type as the runbook being edited are shown. グラフィカル Runbook の場合は、PowerShell ベースの Runbook のみが表示されます。For graphical runbooks, only PowerShell-based runbooks are shown. グラフィカル PowerShell ワークフロー Runbook の場合は、PowerShell ワークフローベースの Runbook のみが表示されます。For graphical PowerShell Workflow runbooks, only PowerShell Workflow-based runbooks are shown.
アセットAssets Runbook で使用できる、Automation アカウント内の オートメーション資産The automation assets in your Automation account that you can use in your runbook. Runbook に資産を追加すると、選択した資産を取得するワークフロー アクティビティが追加されます。Adding an asset to a runbook adds a workflow activity that gets the selected asset. 変数資産の場合は、変数を取得するアクティビティを追加するか、変数を設定するアクティビティを追加するかを選択できます。In the case of variable assets, you can select whether to add an activity to get the variable or set the variable.
Runbook コントロールRunbook Control 現在の Runbook で使用できるコントロール アクティビティ。Control activities that can be used in your current runbook. ジャンクション アクティビティは複数の入力を受け取り、すべてが完了するまで待機してから、ワークフローを続行します。A Junction activity takes multiple inputs and waits until all have completed before continuing the workflow. コード アクティビティは、グラフィカル Runbook の種類に応じて、PowerShell または PowerShell ワークフローの 1 行以上のコードを実行します。A Code activity runs one or more lines of PowerShell or PowerShell Workflow code, depending on the graphical runbook type. このアクティビティは、カスタム コードや、他のアクティビティでの実現が難しい機能に使用できます。You can use this activity for custom code or for functionality that is difficult to achieve with other activities.

構成コントロールConfiguration control

構成コントロールを使用すると、キャンバスで選択されているオブジェクトの詳細を指定できます。The Configuration control enables you to provide details for an object that is selected on the canvas. このコントロールで使用できるプロパティは、選択したオブジェクトの種類によって異なります。The properties available in this control depend on the type of object selected. 構成コントロールでオプションを選択すると、詳しい情報を指定するための追加のブレードが開きます。When you choose an option in the Configuration control, it opens additional blades to provide more information.

テスト コントロールTest control

グラフィカル エディターが初めて起動された場合、テスト コントロールは表示されません。The Test control is not displayed when the graphical editor is first started. グラフィカル Runbook を対話形式でテストするときに開きます。It is opened when you interactively test a graphical runbook.

アクティビティを使用するUse activities

アクティビティは Runbook の構成要素です。Activities are the building blocks of a runbook. アクティビティは、PowerShell コマンドレット、子 Runbook、またはワークフローの場合があります。An activity can be a PowerShell cmdlet, a child runbook, or a workflow. Runbook にアクティビティを追加するには、ライブラリ コントロールでそれを右クリックし、 [キャンバスに追加] を選択します。You can add an activity to the runbook by right-clicking it in the Library control and selecting Add to canvas. その後、アクティビティをクリックしてドラッグし、キャンバス上の任意の場所に配置できます。You can then click and drag the activity to place it anywhere on the canvas that you like. キャンバス上のアクティビティの場所が、Runbook の操作に影響することはありません。The location of the activity on the canvas does not affect the operation of the runbook. Runbook は、その操作を視覚化するのに最適な方法でレイアウトできます。You can lay out your runbook any way you find most suitable to visualize its operation.

キャンバスに追加

キャンバス上でアクティビティを選択し、構成ブレードでそのプロパティとパラメーターを構成します。Select an activity on the canvas to configure its properties and parameters in the Configuration blade. アクティビティのラベルは、わかりやすい名前に変更できます。You can change the label of the activity to a name that you find descriptive. Runbook では引き続き元のコマンドレットが実行されます。The runbook still runs the original cmdlet. 単に、グラフィカル エディターで使用される表示名を変更するだけです。You are simply changing the display name that the graphical editor uses. ラベルは、Runbook 内で一意でなければならないことに注意してください。Note that the label must be unique within the runbook.

パラメーター セットParameter sets

パラメーター セットは、特定のコマンドレットの値を受け入れる必須および省略可能なパラメーターを定義します。A parameter set defines the mandatory and optional parameters that accept values for a particular cmdlet. すべてのコマンドレットには 1 つ以上のパラメーター セットがあり、複数のセットがあるものもあります。All cmdlets have at least one parameter set, and some have several sets. コマンドレットに複数のパラメーター セットがある場合は、使用するものを必ず選択してから、パラメーターを構成できます。If a cmdlet has multiple parameter sets, you must select the one to use before you can configure parameters. アクティビティで使用されるパラメーター セットは、 [パラメーター セット] を選択して別のセットを選ぶことで変更できます。You can change the parameter set used by an activity by selecting Parameter Set and choosing another set. この場合、既に構成済みのパラメーター値はすべて失われます。In this case, any parameter values that you have already configured are lost.

次の例で、Get-AzVM コマンドレットには 3 つのパラメーター セットがあります。In the following example, the Get-AzVM cmdlet has three parameter sets. 例では、ListVirtualMachineInResourceGroupParamSet という 1 つのセットを使用します。これには、リソース グループ内のすべての仮想マシンを返すための、1 つの省略可能なパラメーターがあります。The example uses one set called ListVirtualMachineInResourceGroupParamSet, with a single optional parameter, for returning all virtual machines in a resource group. また、例では、返される仮想マシンを指定するために GetVirtualMachineInResourceGroupParamSet パラメーター セットも使用しています。The example also uses the GetVirtualMachineInResourceGroupParamSet parameter set for specifying the virtual machine to return. このセットには、2 つの必須パラメーターと 1 つの省略可能なパラメーターがあります。This set has two mandatory parameters and one optional parameter.

パラメーター セット

パラメーターの値Parameter values

パラメーターの値を指定する場合は、データ ソースを選択して値の指定方法を決定します。When you specify a value for a parameter, you select a data source to determine how the value is specified. 特定のパラメーターに使用できるデータ ソースは、そのパラメーターの有効な値によって異なります。The data sources that are available for a particular parameter depend on the valid values for that parameter. たとえば、null 値が許可されていないパラメーターに対するオプションとして Null を使用することはできません。For example, Null is not an available option for a parameter that does not allow null values.

Data SourceData Source 説明Description
定数値Constant Value パラメーターの値を入力します。Type in a value for the parameter. このデータ ソースは、次のデータ型に対してのみ使用できます。Int32、Int64、String、Boolean、DateTime、Switch です。This data source is only available for the following data types: Int32, Int64, String, Boolean, DateTime, Switch.
アクティビティの出力Activity Output ワークフローの現在のアクティビティより前のアクティビティからの出力を使用します。Use output from an activity that precedes the current activity in the workflow. 有効なすべてのアクティビティが一覧表示されます。All valid activities are listed. パラメーター値には、出力を生成するアクティビティだけを使用します。For the parameter value, use just the activity that produces the output. 複数のプロパティを持つオブジェクトがアクティビティによって出力される場合は、アクティビティを選択した後に、特定のプロパティの名前を入力できます。If the activity outputs an object with multiple properties, you can type in the name of a specific property after selecting the activity.
Runbook の入力Runbook Input Runbook の入力をアクティビティ パラメーターの入力として選択します。Select a runbook input as an input for the activity parameter.
変数資産Variable Asset Automation の変数を入力として選択します。Select an Automation variable as input.
資格情報資産Credential Asset Automation の資格情報を入力として選択します。Select an Automation credential as input.
証明書資産Certificate Asset Automation の証明書を入力として選択します。Select an Automation certificate as input.
接続資産Connection Asset Automation の接続を入力として選択します。Select an Automation connection as input.
PowerShell 式PowerShell Expression 簡単な PowerShell 式を指定します。Specify a simple PowerShell expression. 式は、アクティビティの前に評価され、結果がパラメーター値に使用されます。The expression is evaluated before the activity and the result is used for the parameter value. 変数を使用すれば、アクティビティの出力または Runbook の入力パラメーターを参照することができます。You can use variables to refer to the output of an activity or a runbook input parameter.
未構成Not Configured 以前に構成されていた値をすべてクリアします。Clear any value that was previously configured.

省略可能な追加パラメーターOptional additional parameters

すべてのコマンドレットで、追加のパラメーターを指定することができます。All cmdlets have the option to provide additional parameters. これらは、PowerShell の共通パラメーターまたはその他のカスタム パラメーターです。These are PowerShell-common parameters or other custom parameters. グラフィカル エディターには、PowerShell 構文を使用してパラメーターを指定できるテキスト ボックスが表示されます。The graphical editor presents a text box where you can provide parameters using PowerShell syntax. たとえば、Verbose 共通パラメーターを使用するには、-Verbose:$True を指定する必要があります。For example, to use the Verbose common parameter, you should specify -Verbose:$True.

再試行アクティビティRetry activity

アクティビティの再試行機能を使用すると、ループのように、特定の条件が満たされるまで複数回実行できます。Retry functionality for an activity allows it to be run multiple times until a particular condition is met, much like a loop. この機能は、複数回実行する必要があるアクティビティ、エラーが発生しやすく、成功までに複数回の試行が必要になる可能性があるアクティビティ、またはアクティビティの出力情報が有効なデータかどうかをテストするアクティビティに使用できます。You can use this feature for activities that should run multiple times, are error prone, might need more than one attempt for success, or test the output information of the activity for valid data.

アクティビティの再試行を有効にするときに、遅延と条件を設定できます。When you enable retry for an activity, you can set a delay and a condition. 遅延とは、アクティビティを次回実行するまでに Runbook が待機する時間 (秒単位または分単位) です。The delay is the time (measured in seconds or minutes) that the runbook waits before it runs the activity again. 遅延を指定しない場合、アクティビティは完了した直後に再び実行されます。If you don't specify a delay, the activity runs again immediately after it completes.

再試行を有効にする機能の設定のスクリーンショット。

再試行の条件は、アクティビティが実行されるたびに評価される PowerShell 式です。The retry condition is a PowerShell expression that is evaluated after each time that the activity runs. 式が True に解決されると、アクティビティは再実行されます。If the expression resolves to True, the activity runs again. 式が False に解決されると、アクティビティは再実行されず、Runbook は次のアクティビティに移ります。If the expression resolves to False, the activity does not run again and the runbook moves on to the next activity.

再試行を有効にする機能の設定のスクリーンショット。

再試行の条件には、アクティビティの再試行に関する情報へのアクセスを提供する RetryData という名前の変数を使用できます。The retry condition can use a variable named RetryData that provides access to information about the activity retries. この変数には、次の表のプロパティがあります。This variable has the properties in the following table:

プロパティProperty 説明Description
NumberOfAttempts アクティビティが実行された回数。Number of times that the activity has been run.
Output 最後に実行されたアクティビティの出力。Output from the last run of the activity.
TotalDuration 初回のアクティビティが開始されてからの経過時間。Timed elapsed since the activity was started the first time.
StartedAt アクティビティが最初に開始された時刻 (UTC 形式)。Time (in UTC format) when the activity was first started.

アクティビティの再試行条件の例を次に示します。The following are examples of activity retry conditions.

# 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

アクティビティの再試行条件を構成すると、そのアクティビティには、通知用に 2 つの視覚的な合図が含まれます。After you configure a retry condition for an activity, the activity includes two visual cues to remind you. 1 つはアクティビティに表示され、もう 1 つはアクティビティの構成を確認するときに表示されます。One is presented in the activity and the other is shown when you review the configuration of the activity.

Activity Retry Visual Indicators

ワークフロー スクリプト コントロールWorkflow Script control

ワークフロー スクリプト コントロールは、作成するグラフィカル Runbook の種類に応じて、PowerShell または PowerShell ワークフローのスクリプトを受け入れる特別なアクティビティです。A workflow Script control is a special activity that accepts PowerShell or PowerShell Workflow script, depending on the type of graphical runbook being authored. このコントロールは、他の方法では使用できない可能性がある機能を提供します。This control provides functionality that might not be available by other means. これはパラメーターを受け入れることはできませんが、アクティビティの出力と Runbook の入力パラメーターで変数を使用できます。It cannot accept parameters, but it can use variables for activity output and runbook input parameters. アクティビティのすべての出力はデータバスに追加されます。Any output of the activity is added to the databus. 例外は発信リンクがない出力です。その場合、出力は Runbook の出力に追加されます。An exception is output with no outgoing link, in which case the output is added to the output of the runbook.

たとえば、次のコードでは NumberOfDays という名前の Runbook 入力変数を使用して、日付の計算を実行します。For example, the following code performs date calculations using a runbook input variable named NumberOfDays. 次に、計算された DateTime 値を、Runbook 内の後続のアクティビティで使用される出力として送信します。It then sends a calculated DateTime value as output to be used by subsequent activities in the runbook.

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

グラフィカル Runbook のリンクは 2 つのアクティビティを接続します。A link in a graphical runbook connects two activities. キャンバスでは、ソース アクティビティから接続先アクティビティを指す矢印として表示されます。It is displayed on the canvas as an arrow pointing from the source activity to the destination activity. アクティビティは矢印の方向に実行され、ソース アクティビティが完了すると接続先アクティビティが開始されます。The activities run in the direction of the arrow with the destination activity starting after the source activity completes.

ソース アクティビティを選択し、図形の下部にある円をクリックして、2 つのアクティビティ間のリンクを作成できます。You can create a link between two activities by selecting the source activity and clicking the circle at the bottom of the shape. 接続先アクティビティまで矢印をドラッグして離します。Drag the arrow to the destination activity and release.

リンクの作成

リンクを選択して、構成ブレードでそのプロパティを構成します。Select the link to configure its properties in the Configuration blade. プロパティには、次の表で説明されているリンクの種類が含まれます。Properties include the link type, which is described in the following table.

リンクの種類Link Type 説明Description
パイプラインPipeline 接続先アクティビティは、ソース アクティビティからのオブジェクト出力ごとに 1 回実行されます。The destination activity runs once for each object output from the source activity. ソース アクティビティからの出力がない場合、接続先アクティビティは実行されません。The destination activity does not run if the source activity results in no output. ソース アクティビティからの出力はオブジェクトとして使用できます。Output from the source activity is available as an object.
SequenceSequence 接続先アクティビティは、ソース アクティビティからの出力を受け取ったときに 1 回だけ実行されます。The destination activity runs only once when it receives output from the source activity. ソース アクティビティからの出力は、オブジェクトの配列として使用できます。Output from the source activity is available as an array of objects.

Runbook アクティビティの開始Start runbook activity

グラフィカル Runbook は、受信リンクのないすべてのアクティビティから開始します。A graphical runbook starts with any activities that do not have an incoming link. 多くの場合、Runbook の開始アクティビティとして動作するアクティビティは 1 つだけです。There is often only one activity that acts as the starting activity for the runbook. 複数のアクティビティに受信リンクがない場合、Runbook はそれらを並列で実行して開始します。If multiple activities do not have an incoming link, the runbook starts by running them in parallel. その後、リンクに従って、各アクティビティの完了時に別のアクティビティを実行します。It follows the links to run other activities as each completes.

リンクに条件を指定すると、その条件が True に解決される場合にのみ、接続先アクティビティが実行されます。When you specify a condition on a link, the destination activity runs only if the condition resolves to True. ソース アクティビティからの出力を取得するには、通常は条件に ActivityOutput 変数を使用します。You typically use an ActivityOutput variable in a condition to retrieve the output from the source activity.

パイプライン リンクの場合は、1 つのオブジェクトに対して条件を指定する必要があります。For a pipeline link, you must specify a condition for a single object. Runbook は、ソース アクティビティによる各オブジェクト出力の条件を評価します。The runbook evaluates the condition for each object output by the source activity. その後、条件を満たす各オブジェクトに対して接続先アクティビティが実行されます。It then runs the destination activity for each object that satisfies the condition. たとえば、Get-AzVM のソース アクティビティでは、条件付きパイプライン リンクに次の構文を使用すると、Group1 という名前のリソース グループ内の仮想マシンのみを取得できます。For example, with a source activity of Get-AzVM, you can use the following syntax for a conditional pipeline link to retrieve only virtual machines in the resource group named Group1.

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

シーケンス リンクの場合は、ソース アクティビティからのすべてのオブジェクトを含む 1 つの配列が返されるため、Runbook は条件を一度だけ評価します。For a sequence link, the runbook only evaluates the condition once, since a single array containing all objects from the source activity is returned. このため、Runbook では、パイプライン リンクを使ってできるように、フィルター処理にシーケンス リンクを使用することはできません。Because of this, the runbook can't use a sequence link for filtering, like it can with a pipeline link. シーケンス リンクは、単純に、次のアクティビティが実行されるかどうかを判断できます。The sequence link can simply determine whether or not the next activity is run.

たとえば、Start VM Runbook で次のアクティビティ セットを使用します。For example, take the following set of activities in our Start VM runbook:

Conditional Link with Sequences

この Runbook では、入力パラメーターの VMNameResourceGroupName の値を検証する 3 つの異なるシーケンス リンクを使用して、実行する適切なアクションを決定します。The runbook uses three different sequence links that verify values of the input parameters VMName and ResourceGroupName to determine the appropriate action to take. 実行可能なアクションは、1 つの VM の開始、リソース グループ内のすべての VM の開始、またはサブスクリプション内のすべての VM の開始です。Possible actions are start a single VM, start all VMs in the resource group, or start all VMs in a subscription. Connect to AzureGet single VM間のシーケンス リンクの場合、条件ロジックは次のようになります。For the sequence link between Connect to Azure and Get single VM, here is the condition logic:

<#
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))
)

条件付きリンクを使用する場合は、その分岐でソース アクティビティから他のアクティビティまでの使用可能なデータが、条件によってフィルター処理されます。When you use a conditional link, the data available from the source activity to other activities in that branch is filtered by the condition. アクティビティが複数のリンクのソースの場合、各分岐でアクティビティが使用できるデータは、その分岐に接続するリンクの条件によって異なります。If an activity is the source to multiple links, the data available to activities in each branch depends on the condition in the link connecting to that branch.

たとえば、以下の Runbook の Start-AzVM アクティビティでは、すべての仮想マシンを起動します。For example, the Start-AzVM activity in the runbook below starts all virtual machines. このアクティビティには 2 つの条件付きリンクがあります。It has two conditional links. 最初の条件付きリンクでは、$ActivityOutput['Start-AzVM'].IsSuccessStatusCode -eq $true 式を使用して、Start-AzVM アクティビティが正常に完了したかどうかをフィルター処理します。The first conditional link uses the expression $ActivityOutput['Start-AzVM'].IsSuccessStatusCode -eq $true to filter if the Start-AzVM activity completes successfully. 2 番目の条件付きリンクでは、$ActivityOutput['Start-AzVM'].IsSuccessStatusCode -ne $true 式を使用して、Start-AzVm アクティビティで仮想マシンの起動が失敗したかどうかをフィルター処理します。The second conditional link uses the expression $ActivityOutput['Start-AzVM'].IsSuccessStatusCode -ne $true to filter if the Start-AzVm activity fails to start the virtual machine.

条件付きリンクの例

最初のリンクに従い、Get-AzureVM からのアクティビティ出力を使用するアクティビティでは、Get-AzureVM が実行されたときに起動された仮想マシンのみを取得します。Any activity that follows the first link and uses the activity output from Get-AzureVM only retrieves the virtual machines that were started at the time when Get-AzureVM was run. 2 番目のリンクに従うアクティビティでは、Get-AzureVM が実行されたときに停止された仮想マシンのみを取得します。Any activity that follows the second link only gets the virtual machines that were stopped at the time when Get-AzureVM was run. 3 番目のリンクに従うアクティビティでは、実行状態に関係なく、すべての仮想マシンを取得します。Any activity following the third link gets all virtual machines regardless of their running state.

接合を使用するUse junctions

接合は特別なアクティビティで、受信分岐がすべて完了するまで待機します。A junction is a special activity that waits until all incoming branches have completed. これにより、Runbook は、複数のアクティビティを並列で実行し、次に進む前にすべてを確実に完了できます。This allows the runbook to run multiple activities in parallel and ensure that all have completed before moving on.

ジャンクションが受け取れる受信リンクの数に制限はありませんが、パイプラインにすることができるのはそれらのリンクのうち 1 つだけです。While a junction can have an unlimited number of incoming links, only one of those links can be a pipeline. 受信シーケンス リンクの数に制限はありません。The number of incoming sequence links is not constrained. 複数の受信パイプライン リンクを持つジャンクションを作成して、Runbook を保存することはできますが、それを実行すると失敗します。You can create the junction with multiple incoming pipeline links and save the runbook, but it will fail when it is run.

次の例は、一連の仮想マシンに同時に修正プログラムをダウンロードする間に、それらのマシンを開始する Runbook の一部です。The example below is part of a runbook that starts a set of virtual machines while simultaneously downloading patches to be applied to those machines. ジャンクションを使用して、両方のプロセスが完了したことを確認してから、Runbook を続行します。It uses a junction to ensure that both processes are completed before the runbook continues.

ジャンクション

サイクルを操作するWork with cycles

サイクルは、接続先アクティビティがそのソース アクティビティに戻るようにリンクされている場合、または別のアクティビティにリンクされていて、それが最終的にそのソースに戻るようになっている場合に形成されます。A cycle is formed when a destination activity links back to its source activity or to another activity that eventually links back to its source. 現在、グラフィカル作成ではサイクルはサポートされていません。Graphical authoring does not currently support cycles. Runbook にサイクルがある場合、保存は正常に行われますが、実行時にエラーが発生します。If your runbook has a cycle, it saves properly but receives an error when it runs.

サイクル

アクティビティ間でデータを共有するShare data between activities

発信リンクがあるアクティビティで出力されるデータは、Runbook のデータバスに書き込まれます。Any data that an activity outputs with an outgoing link is written to the databus for the runbook. Runbook のすべてのアクティビティはデータバスのデータを使用して、パラメーターの値を設定したり、スクリプト コードに含めたりすることができます。Any activity in the runbook can use data on the databus to populate parameter values or include in script code. アクティビティは、ワークフロー内の前のアクティビティの出力にアクセスできます。An activity can access the output of any previous activity in the workflow.

データバスにデータが書き込まれる方法は、アクティビティのリンクの種類によって異なります。How the data is written to the databus depends on the type of link on the activity. パイプライン リンクの場合、データは複数のオブジェクトとして出力されます。For a pipeline link, the data is output as multiple objects. シーケンス リンクの場合、データは配列として出力されます。For a sequence link, the data is output as an array. 値が 1 つしかない場合は、単一要素配列として出力されます。If there is only one value, it is output as a single-element array.

Runbook がデータバス上のデータにアクセスするには、2 つの方法があります。Your runbook has two ways to access data on the databus:

  • アクティビティ出力のデータ ソースを使用する。Use an activity output data source.
  • PowerShell 式のデータ ソースを使用する。Use a PowerShell expression data source.

最初のメカニズムは、アクティビティ出力のデータ ソースを使用して、別のアクティビティのパラメーターを設定します。The first mechanism uses an activity output data source to populate a parameter of another activity. 出力がオブジェクトの場合、Runbook は 1 つのプロパティを指定できます。If the output is an object, the runbook can specify a single property.

アクティビティの出力

2 番目のデータ アクセス メカニズムでは、PowerShell 式データ ソースでのアクティビティの出力を取得するか、以下に示す構文を使用して ActivityOutput 変数でワークフロー スクリプト アクティビティの出力を取得します。The second data access mechanism retrieves the output of an activity in a PowerShell expression data source or a workflow script activity with an ActivityOutput variable, using the syntax shown below. 出力がオブジェクトの場合、Runbook は 1 つのプロパティを指定できます。If the output is an object, your runbook can specify a single property.

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

チェックポイントを使用するUse checkpoints

任意のアクティビティで [Checkpoint runbook](Runbook のチェックポイント) を選択することにより、グラフィカル PowerShell ワークフロー Runbook にチェックポイントを設定できます。You can set checkpoints in a graphical PowerShell Workflow runbook by selecting Checkpoint runbook on any activity. この場合、アクティビティの実行後にチェックポイントが設定されます。This causes a checkpoint to be set after the activity runs.

Checkpoint

チェックポイントは、グラフィカル PowerShell ワークフロー Runbook でのみ有効であり、グラフィカル Runbook では使用できません。Checkpoints are only enabled in graphical PowerShell Workflow runbooks, and are not available in graphical runbooks. Runbook で Azure コマンドレットが使用される場合は、Connect-AzAccount アクティビティを使ってチェックポイントが設定されたアクティビティに従う必要があります。If the runbook uses Azure cmdlets, it should follow any checkpointed activity with a Connect-AzAccount activity. 接続操作は、Runbook が中断され、別のワーカーでこのチェックポイントから再起動する必要がある場合に使用されます。The connect operation is used in case the runbook is suspended and must restart from this checkpoint on a different worker.

Runbook 入力を処理するHandle runbook input

Runbook には、Azure portal を通じて Runbook を開始するユーザーから、または現在のものが子として使用されている場合は別の Runbook からの入力が必要です。A runbook requires input either from a user starting the runbook through the Azure portal or from another runbook, if the current one is used as a child. たとえば、仮想マシンを作成する Runbook の場合、ユーザーは、Runbook を開始するたびに仮想マシンの名前や他のプロパティなどの情報を提供しなければならない場合があります。For example, for a runbook that creates a virtual machine, the user might need to provide such information as the name of the virtual machine and other properties each time the runbook starts.

1 つ以上の入力パラメーターを定義することで、Runbook では入力を受け入れます。The runbook accepts input by defining one or more input parameters. ユーザーは、Runbook が開始されるたびに、これらのパラメーターの値を指定します。The user provides values for these parameters each time the runbook starts. ユーザーが Azure portal を使用して Runbook を開始すると、ユーザーは Runbook でサポートされている各入力パラメーターの値を入力するように求められます。When the user starts the runbook using the Azure portal, the user is prompted to provide values for each input parameter supported by the runbook.

Runbook を作成するときは、Runbook ツールバーの [入力と出力] をクリックすることで、入力パラメーターにアクセスできます。When authoring your runbook, you can access its input parameters by clicking Input and output on the runbook toolbar. これにより、[入力と出力] コントロールが開き、そこで既存の入力パラメーターを編集したり、 [入力の追加] をクリックして新しいものを作成したりできます。This opens the Input and Output control where you can edit an existing input parameter or create a new one by clicking Add input.

入力の追加

各入力パラメーターは、次の表のプロパティで定義されます。Each input parameter is defined by the properties in the following table:

プロパティProperty 説明Description
名前Name 必須。Required. パラメーターの名前。The name of the parameter. 名前は Runbook 内で一意にする必要があります。The name must be unique within the runbook. 名前の先頭には英字を使用する必要があります。また、使用できるのは英字、数字、アンダースコアのみです。It must start with a letter and can contain only letters, numbers, and underscores. 名前に空白文字を含めることはできません。The name cannot contain a space.
説明Description 省略可能。Optional. 入力パラメーターの目的に関する説明。Description of the purpose for the input parameter.
TypeType 省略可能。Optional. パラメーター値に必要なデータ型です。Data type expected for the parameter value. Azure Portal では、入力を求められた場合に各パラメーターのデータ型に適したコントロールが提供されます。The Azure portal provides an appropriate control for the data type for each parameter when prompting for input. サポートされているパラメーター型は String、Int32、Int64、Decimal、Boolean、DateTime、および Object です。Supported parameter types are String, Int32, Int64, Decimal, Boolean, DateTime, and Object. データ型が選択されていない場合、既定値は String になります。If a data type is not selected, it defaults to String.
MandatoryMandatory 省略可能。Optional. パラメーターの値を指定する必要があるかどうかを指定する設定。Setting that specifies if a value must be provided for the parameter. [yes] を選択した場合、Runbook の起動時に値を指定する必要があります。If you choose yes, a value must be provided when the runbook is started. [no] を選択した場合、Runbook の起動時に値は求められません。既定値を使用できます。If you choose no, a value is not required when the runbook is started, and a default value can be used. 既定値が定義されていない各必須パラメーターの値を指定しないと、Runbook を開始できません。The runbook cannot start if you do not provide a value for each mandatory parameter that does not have a default value defined.
Default valueDefault Value 省略可能。Optional. Runbook の開始時に値が渡されなかった場合に、パラメーターに使用される値。The value used for a parameter if one is not passed in when the runbook is started. 既定値を設定するには、[Custom] を選択します。To set a default value, choose Custom. 既定値を指定しない場合は、[None] を選択します。Select None if you don't want to provide any default value.

Runbook 出力を処理するHandle runbook output

グラフィカル作成では、発信リンクを持たない任意のアクティビティによって作成されたデータは、Runbook の出力に保存されます。Graphical authoring saves data created by any activity that does not have an outgoing link to the output of the runbook. 出力は Runbook ジョブと共に保存され、Runbook を子として使用する場合に親 Runbook で使用できます。The output is saved with the runbook job and is available to a parent runbook when the runbook is used as a child.

PowerShell 式を使用するWork with PowerShell expressions

グラフィカル作成の利点の 1 つは、PowerShell の最小限の知識で Runbook を作成できることです。One of the advantages of graphical authoring is that it allows you to build a runbook with minimal knowledge of PowerShell. ただし、現時点では、特定のパラメーター値を設定したりリンク条件を設定したりするために、PowerShell の若干の知識が必要です。Currently, though, you do need to know a bit of PowerShell for populating certain parameter values and for setting link conditions. このセクションでは、PowerShell 式を簡単に紹介します。This section provides a quick introduction to PowerShell expressions. PowerShell の詳細については、「 Windows PowerShell を使用したスクリプト」を参照してください。Full details of PowerShell are available at Scripting with Windows PowerShell.

PowerShell 式をデータ ソースとして使用するUse a PowerShell expression as a data source

PowerShell 式をデータ ソースとして使用し、PowerShell コードの結果でアクティビティ パラメーターの値を設定できます。You can use a PowerShell expression as a data source to populate the value of an activity parameter with the results of PowerShell code. この式は、簡単な関数を実行する 1 行のコードでも、複雑なロジックを実行する複数行のコードでもかまいません。The expression can be a single line of code that performs a simple function or multiple lines that perform some complex logic. 変数に割り当てられていないコマンドからの出力は、パラメーター値に出力されます。Any output from a command that is not assigned to a variable is output to the parameter value.

たとえば、次のコマンドは現在の日付を出力します。For example, the following command outputs the current date.

Get-Date

次のコード スニペットでは、現在の日付から文字列を作成して、変数に割り当てます。The next code snippet builds a string from the current date and assigns it to a variable. コードは変数の内容を出力に送ります。The code sends the contents of the variable to the output.

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

次のコマンドは、現在の日付を評価し、現在の日付が週末か平日かを示す文字列を返します。The following commands evaluate the current date and return a string indicating whether the current day is a weekend or a weekday.

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

アクティビティ出力を使用するUse activity output

前のアクティビティからの出力を Runbook で使用するには、次の構文で ActivityOutput 変数を使用します。To use the output from a previous activity in your runbook, use the ActivityOutput variable with the following syntax.

$ActivityOutput['Activity Label'].PropertyName

たとえば、仮想マシンの名前を必要とするプロパティを持つアクティビティを作成できます。For example, you can have an activity with a property that requires the name of a virtual machine. この場合、Runbook は次の式を使用できます。In this case, your runbook can use the following expression.

$ActivityOutput['Get-AzureVM'].Name

プロパティが、名前だけでなく仮想マシン オブジェクトを必要とする場合、Runbook は次の構文を使用してオブジェクト全体を返します。If the property requires the virtual machine object instead of just a name, the runbook returns the entire object using the following syntax.

$ActivityOutput['Get-AzureVM']

Runbook は、次のように、より複雑な式でアクティビティの出力を使用できます。The runbook can use the output of an activity in a more complex expression, such as the following. この式では、テキストが仮想マシン名に連結されます。This expression concatenates text to the virtual machine name.

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

値を比較するCompare values

値を比較する場合、または値が指定したパターンに一致するかどうかを判定する場合は、 比較演算子 を使います。Use comparison operators to compare values or determine if a value matches a specified pattern. 比較では、True または False のいずれかの値が返されます。A comparison returns a value of either True or False.

たとえば、次の条件では、Get-AzureVM という名前のアクティビティの仮想マシンが現在、停止されているかどうかを判断します。For example, the following condition determines if the virtual machine from an activity named Get-AzureVM is currently stopped.

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

次の条件は、同じ仮想マシンが停止済み以外の状態かどうかを判断します。The following condition determines if the same virtual machine is in any state other than stopped.

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

-and-or などの論理演算子を使用して、Runbook で複数の条件を結合できます。You can join multiple conditions in your runbook using a logical operator, such as -and or -or. たとえば、次の条件では、前の例の仮想マシンが停止済みと停止中のどちらの状態であるかを確認します。For example, the following condition checks to see if the virtual machine in the previous example is in a state of Stopped or Stopping.

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

ハッシュテーブルを使用するUse hashtables

ハッシュテーブルは、値のセットを返すのに便利な名前と値のペアです。Hashtables are name-value pairs that are useful for returning a set of values. ハッシュテーブルはディクショナリと呼ばれる場合もあります。You might also see a hashtable referred to as a dictionary. 一部のアクティビティのプロパティでは、単純な値ではなくハッシュテーブルが想定されています。Properties for certain activities expect a hashtable instead of a simple value.

ハッシュテーブルは次の構文を使って作成します。Create a hashtable using the following syntax. これには任意の数のエントリを含めることができますが、それぞれは名前と値で定義されています。It can contain any number of entries, but each is defined by a name and value.

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

たとえば、次の式は、インターネット検索用の値のハッシュテーブルが想定されているアクティビティ パラメーターのデータ ソースとして使用されるハッシュテーブルを作成します。For example, the following expression creates a hashtable to be used as the data source for an activity parameter that expects a hashtable of values for an internet search.

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

次の例では、Get Twitter Connection というアクティビティからの出力を使用して、ハッシュテーブルを設定します。The following example uses output from an activity called Get Twitter Connection to populate a hashtable.

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

Azure リソースに対して認証するAuthenticate to Azure resources

Azure リソースを管理する、Azure Automation の Runbook は、Azure に対する認証が必要になります。Runbooks in Azure Automation that manage Azure resources require authentication to Azure. 実行アカウント (サービス プリンシパルとも呼ばれる) は、サブスクリプション内の Azure Resource Manager リソースにアクセスするために Automation Runbook で使用される既定のメカニズムです。The Run As account, also referred to as a service principal, is the default mechanism that an Automation runbook uses to access Azure Resource Manager resources in your subscription. この機能をグラフィカル Runbook に追加するには、PowerShell の Get-AutomationConnection コマンドレットを使用する AzureRunAsConnection 接続資産をキャンバスに追加します。You can add this functionality to a graphical runbook by adding the AzureRunAsConnection connection asset, which uses the PowerShell Get-AutomationConnection cmdlet, to the canvas. また、Connect-AzAccount コマンドレットを追加することもできます。You can also add the Connect-AzAccount cmdlet. このシナリオを次の例で示します。This scenario is illustrated in the following example.

Run As Authentication アクティビティ

Get Run As Connection アクティビティ (Get-AutomationConnection) は、AzureRunAsConnection という名前の定数値のデータ ソースで構成されます。The Get Run As Connection activity, or Get-AutomationConnection, is configured with a constant value data source named AzureRunAsConnection.

Run As Connection 構成

次のアクティビティ Connect-AzAccount では、Runbook で使用する認証済み実行アカウントを追加します。The next activity, Connect-AzAccount, adds the authenticated Run As account for use in the runbook.

Connect-AzAccount パラメーター セット

注意

PowerShell Runbook の場合、Add-AzAccountAdd-AzureRMAccountConnect-AzAccount の別名です。For PowerShell runbooks, Add-AzAccount and Add-AzureRMAccount are aliases for Connect-AzAccount. これらの別名は、グラフィカルな Runbook では使用できないことに注意してください。Note that these aliases are not available for your graphical runbooks. グラフィカルな Runbook で使用できるのは、Connect-AzAccount 自体のみです。A graphical runbook can only use Connect-AzAccount itself.

APPLICATIONIDCERTIFICATETHUMBPRINT、および TENANTID のパラメーター フィールドでは、フィールド パスに対してプロパティの名前を指定します。これは、アクティビティによって、複数のプロパティを持つオブジェクトが出力されるためです。For the parameter fields APPLICATIONID, CERTIFICATETHUMBPRINT, and TENANTID, specify the name of the property for the field path, since the activity outputs an object with multiple properties. 指定しなかった場合は、Runbook を実行するときに、認証の試行中に失敗します。Otherwise, when the runbook executes, it fails while attempting to authenticate. これは、実行アカウントで Runbook を認証するために最低限必要なことです。This is what you need at a minimum to authenticate your runbook with the Run As account.

一部のサブスクライバーは、Azure クラシック デプロイを管理するために、または Azure Resource Manager リソース用に、Azure AD ユーザー アカウントを使用して Automation アカウントを作成します。Some subscribers create an Automation account using an Azure AD user account to manage Azure classic deployment or for Azure Resource Manager resources. これらのサブスクライバーに対して下位互換性を維持するために、Runbook で使用する認証メカニズムは、資格情報資産を使用する Add-AzureAccount コマンドレットです。To maintain backward compatibility for these subscribers, the authentication mechanism to use in your runbook is the Add-AzureAccount cmdlet with a credential asset. 資産は、Azure アカウントへのアクセス権を持つ Active Directory ユーザーを表します。The asset represents an Active Directory user with access to the Azure account.

グラフィカル Runbook のこの機能を有効にするには、キャンバスに資格情報資産を追加し、その後に、資格情報資産を入力に使用する Add-AzureAccount アクティビティを続けます。You can enable this functionality for your graphical runbook by adding a credential asset to the canvas, followed by an Add-AzureAccount activity that uses the credential asset for its input. 次の例を参照してください。See the following example.

認証アクティビティ

Runbook は、その開始時と、各チェックポイントの後に認証する必要があります。The runbook must authenticate at its start and after each checkpoint. したがって、Checkpoint-Workflow アクティビティの後に Add-AzureAccount アクティビティを使用する必要があります。Thus you must use an Add-AzureAccount activity after any Checkpoint-Workflow activity. 追加の資格情報アクティビティを使用する必要はありません。You do not need to use an additional credential activity.

アクティビティの出力

グラフィック Runbook をエクスポートするExport a graphical runbook

グラフィカル Runbook は、発行済みのバージョンのみエクスポートできます。You can only export the published version of a graphical runbook. Runbook がまだ発行されていない場合、 [エクスポート] ボタンは無効になっています。If the runbook has not yet been published, the Export button is disabled. [エクスポート] ボタンをクリックすると、Runbook がローカル コンピューターにダウンロードされます。When you click the Export button, the runbook downloads to your local computer. ファイル名は、Runbook の名前に .graphrunbook 拡張子が付いたものになります。The name of the file matches the name of the runbook with a .graphrunbook extension.

グラフィカル Runbook をインポートするImport a graphical runbook

グラフィカル Runbook ファイルまたはグラフィカル PowerShell ワークフロー Runbook ファイルは、Runbook の追加時に [インポート] オプションを選択するとインポートできます。You can import a graphical or graphical PowerShell Workflow runbook file by selecting the Import option when adding a runbook. インポートするファイルを選択するときは、同じ名前を保持することも、新しい名前を指定することもできます。When you select the file to import, you can keep the same name or provide a new one. [Runbook の種類] フィールドには、選択したファイルを評価した後に Runbook の種類が表示されます。The Runbook Type field displays the type of runbook after it assesses the file selected. 正しくない別の種類を選択しようとすると、グラフィカル エディターは、競合の可能性があり、変換中に構文エラーが発生する可能性があることを示すメッセージを表示します。If you attempt to select a different type that is not correct, the graphical editor presents a message noting that there are potential conflicts and there might be syntax errors during conversion.

Runbook のインポート

グラフィック Runbook をテストするTest a graphical runbook

Azure Automation の各グラフィカル Runbook には、ドラフト バージョンと発行済みバージョンがあります。Each graphical runbook in Azure Automation has a Draft version and a Published version. 実行できるのは発行済みバージョンのみであり、編集できるのはドラフト バージョンのみです。You can run only the Published version, while you can only edit the Draft version. ドラフト バージョンを変更しても発行バージョンに影響はありません。The Published version is unaffected by any changes to the Draft version. ドラフト バージョンを使用する準備ができたら、それを発行します。これにより、現在の発行済みバージョンがドラフト バージョンによって上書きされます。When the Draft version is ready for use, you publish it, which overwrites the current Published version with your Draft version.

発行済みバージョンを未変更のままにして、Azure portal で Runbook のドラフト バージョンをテストできます。You can test the Draft version of a runbook in the Azure portal while leaving the Published version unchanged. 別の方法として、新しい Runbook を発行前にテストすることもできます。それにより、バージョンを置き換える前にその Runbook が正しく動作することを確認できます。Alternatively, you can test a new runbook before it has been published so that you can verify that the runbook works correctly before any version replacements. Runbook のテストではドラフト バージョンが実行され、行われるすべてのアクションが完了することが確認されます。Testing of a runbook executes the Draft version and ensures that any actions that it performs are completed. ジョブ履歴は作成されませんが、テスト出力ペインに出力が表示されます。No job history is created, but the Test Output pane displays the output.

グラフィカル Runbook のテスト コントロールを開くには、編集対象の Runbook を開いてから [テスト ペイン] ボタンをクリックします。Open the Test control for your graphical runbook by opening the runbook for edit and then clicking Test pane. テスト コントロールによって入力パラメーターの入力が求められます。 [開始] をクリックすると、Runbook を開始できます。The Test control prompts for input parameters, and you can start the runbook by clicking Start.

グラフィック Runbook を発行するPublish a graphical runbook

グラフィカル Runbook を発行するには、編集対象の Runbook を開いてから [発行] ボタンをクリックします。Publish a graphical runbook by opening the runbook for editing and then clicking Publish. 考えられる Runbook のステータスは次のとおりです。Possible statuses for the runbook are:

  • 新規 -- Runbook はまだ発行されていません。New -- the runbook has not been published yet.
  • 発行済み -- Runbook は発行されています。Published -- the runbook has been published.
  • 編集中 -- Runbook は、発行後に編集されており、ドラフトと発行済みのバージョンが異なります。In edit -- the runbook has been edited after it has been published, and the Draft and Published versions are different.

Runbook のステータス

発行済みバージョンの Runbook に戻すことを選択できます。You have the option to revert to the Published version of a runbook. この操作により、Runbook が最後に発行されから行われた変更はすべて破棄されます。This operation throws away any changes made since the runbook was last published. Runbook のドラフト バージョンは、発行済みバージョンに置き換えられます。It replaces the Draft version of the runbook with the Published version.

次のステップNext steps