2016-03-01 57 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