【问题标题】:How are exported Azure Automation Graphical Runbook definition (.graphrunbook) encoded/encrypted?导出的 Azure 自动化图形运行手册定义 (.graphrunbook) 如何编码/加密?
【发布时间】:2016-03-16 14:17:51
【问题描述】:

这是从 Azure 门户导出后 .graphrunbook 的(修剪后的)内容。

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

Runbook 定义可能是基于 XML 或 XAML 的,虽然这看起来像 base64 编码的文本,但将其解码会导致大部分仍然编码/难以辨认。

上下文:我正在开发与 ARM 配合使用的 Sync-VsoGitRunbook 的改进版本,不需要任意文件夹层次结构(通过自动确定依赖关系),并且可以部署图形运行手册以及 - 因为为什么不呢!这几乎是 Native & Workflow 的全部内容,这些只是要实现的最后一部分。

我目前没有使用任何图形运行手册,但如果/一旦我们使用,我希望它们符合架构。我还计划在打包/清理代码后开源代码。

【问题讨论】:

    标签: powershell azure azure-automation


    【解决方案1】:

    使用 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 代码引入 Runbook(如链接条件、重试条件、活动参数中的 PS 表达式等)。如果您也对这些数据感兴趣,可以改进脚本:存储的所有数据可以使用此 API 检索图形 Runbook 中的内容。

    请从 Chris 提供的链接下载最新版本的 SDK。最新版本包含一些重要的修复。

    【讨论】:

    • RE:“最新版本包含一些重要的修复。” 这确实突出了此程序集需要 NuGet 包。
    【解决方案2】:

    【讨论】:

    • 这并不能完全回答问题。你能提供更多细节吗?
    • 太好了,谢谢克里斯。如果可能的话,我想知道更多。但这应该让我开始。当我发现更多时,我会更新。
    • 这个博客系列似乎也是一个好的开始powershell.amsterdam/2016/01/29/…
    • 希望将其视为用于集成 VS 开发的 NuGet 包
    • Chris,作为这项工作的一部分,我尝试创建一个基本的图形运行手册,该运行手册从自动化帐户执行对等(工作流)运行手册。 (可能不支持 Native - 他们会支持吗?)编辑器允许添加和配置这些 Runbook,但是它们不能被测试或发布 - 会产生反序列化错误。我创建了另一个 S/O 问题:stackoverflow.com/questions/35782788/…
    猜你喜欢
    • 2016-06-17
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 2022-10-21
    • 1970-01-01
    • 2020-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多