【问题标题】:Using Azure Automation - Graphical Runbook - to backup APIM to storage使用 Azure 自动化 - 图形运行手册 - 将 APIM 备份到存储
【发布时间】:2016-10-13 04:56:40
【问题描述】:

我有一个图形运行手册,可将 Azure API 管理实例备份到 Azure 存储。我在 Powershell 中多次使用过这种技术,但我想我会用图形运行手册来尝试它。

这是我的运行手册:

当我从 New-AzureStorageContext 获取存储上下文并尝试在 Backup-AzureRmApiManagement 中使用它时,我收到以下错误:

这是我如何将存储上下文从上一个活动挂钩到我的备份活动:

人们建议上下文被序列化,我应该使用 InlineScript,但我无法让它工作。

这是我认为的序列化上下文:

如果能让它工作会很棒。

【问题讨论】:

    标签: powershell azure-api-management azure-automation


    【解决方案1】:

    假设这是一个Graphical(不是Graphical PowerShell Workflow)runbook,这里应该没有序列化问题。

    问题很可能是由您的自动化帐户中的模块版本不匹配引起的。错误消息表明 New-AzureStorageContext 需要一个类型为 AzureStorageContext 的参数,并且它接收一个类型为 AzureStorageContext 的值。但是,不同的模块版本可以引用不同程序集中定义的类型,并且值不能自动转换为另一种类型。例如,来自 Azure.Storage(版本 A)的 New-AzureStorageContext 可能会返回与来自 AzureRM.ApiManagement(版本 B)的 Backup-AzureRmApiManagement 预期的类型不兼容的 AzureStorageContext 对象。不幸的是,错误消息未提供此信息。为了确认这一点,您可以在同一自动化帐户中运行以下 PowerShell Runbook:

    (gcm New-AzureStorageContext).OutputType.Type.Assembly.FullName
    (gcm Backup-AzureRmApiManagement).Parameters.StorageContext.ParameterType.Assembly.FullName
    

    如果它们实际上指向不同的程序集,您可能需要将所有 Azure 模块的匹配版本导入您的 AutomationAccount。此脚本可以提供帮助:https://github.com/azureautomation/runbooks/blob/master/Utility/ARM/Update-ModulesInAutomationToLatestVersion.ps1

    【讨论】:

    • 感谢@anatoli。我永远不会回去,但现在会尝试
    • 顺便说一下,现在将 Azure 模块更新到最新版本要容易得多:无需运行脚本,只需按下模块顶部的 更新 Azure 模块 按钮页面。
    猜你喜欢
    • 1970-01-01
    • 2022-01-07
    • 2017-02-12
    • 2016-06-17
    • 2021-11-24
    • 2013-06-30
    • 2021-12-21
    • 1970-01-01
    • 2020-01-18
    相关资源
    最近更新 更多