2016-03-01 34 views
0

這是從Azure門戶導出後.graphrunbook的(修剪)內容。如何導出Azure自動化圖形Runbook定義(.graphrunbook)編碼/加密?

{ 
    "SchemaVersion" : "1.2", 
    "RunbookDefinition" : "AAA....AAA=" 
} 

的運行手冊定義大概是XML或XAML爲基礎,而這看起來像編碼文本的base64,解碼其作爲大的部分這樣的結果仍然編碼/難以辨認。

語境:我工作的同步VsoGitRunbook與ARM作品的改版,不需要一個任意文件夾層次結構(通過自動確定依賴),並可以部署圖形化的運行手冊,以及 - 因爲爲什麼不!這幾乎都結束了原生&工作流程,這些只是最後實施的一部分。

我目前沒有使用任何圖形化操作手冊,但是如果/一旦我們做了,我希望它們符合架構。我還計劃在打包/清理代碼後公開採購代碼。

回答

2

使用Azure的自動化圖形創作SDK是檢查和修改的.graphrunbok文件的內容支持的唯一途徑。例如,像這樣的腳本會給你在運行手冊中使用的命令列表:

param(
    [Parameter(Mandatory = $true)] 
    $RunbookPath, 

    $GraphicalAuthoringSDKPath = 'C:\Program Files (x86)\Microsoft Azure Automation Graphical Authoring SDK' 
) 

function Get-RunbookActivities($Runbook, $ActivityType) 
{ 
    $Runbook.Activities | %{ $_ -as $ActivityType } | ?{ $_ } 
} 

Add-Type -Path $GraphicalAuthoringSDKPath\Orchestrator.GraphRunbook.Model.dll 

$SerializedRunbook = Get-Content $RunbookPath 

$Runbook = [Orchestrator.GraphRunbook.Model.Serialization.RunbookSerializer]::Deserialize($SerializedRunbook) 

@{ 
    'Invoked runbooks' = Get-RunbookActivities $Runbook Orchestrator.GraphRunbook.Model.InvokeRunbookActivity | 
          %{ $_.RunbookActivityType.CommandName } 

    'Commands' = Get-RunbookActivities $Runbook Orchestrator.GraphRunbook.Model.CommandActivity | 
          %{ "$($_.CommandType.ModuleName)/$($_.CommandType.CommandName)" } 

    'Code activity content' = Get-RunbookActivities $Runbook Orchestrator.GraphRunbook.Model.WorkflowScriptActivity | 
          %{ $_.Process } 
} 

由該腳本提供的數據是不完整的:它僅列出顯示爲運行手冊圖上盒活動。但是,還有其他方法可將PS代碼引入到行事曆中(例如鏈接條件,重試條件,活動參數中的PS表達式等)。如果您也對此數據感興趣,可以改進腳本:所有數據存儲在圖形操作手冊中可以使用此API檢索。

請從Chris提供的鏈接下載最新版本的SDK。最新版本包含一些重要的修補程序。

+0

RE:**「最新版本包含一些重要的修補程序「。**這真的強調了這個程序集需要NuGet程序包。 – JoeBrockhaus

1
+1

這並不完全回答這個問題。你能提供更多細節嗎? –

+0

太好了,謝謝克里斯。如果可能,我想多瞭解一點。但是這應該讓我開始。我會更新,因爲我發現更多。 – JoeBrockhaus

+0

這個博客系列似乎也是一個不錯的開始http://www.powershell.amsterdam/2016/01/29/using-powershell-to-make-azure-automation-graphical-runbooks-part-1/ – JoeBrockhaus