使用 Azure Automation - Graphical Runbook - 将 APIM 备份到存储

Using Azure Automation - Graphical Runbook - to backup APIM to storage

我有一个图形操作手册,可以将 Azure API 管理实例备份到 Azure 存储。我已在 Powershell 中多次使用此技术,但我想我会尝试使用图形 runbook。

这是我的操作手册:

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

以下是我如何将之前 activity 的存储上下文挂接到我的备份 activity:

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

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

让这个工作起来真是太好了。

假设这是一本 Graphical(不是 Graphical PowerShell Workflow)运行的书,应该没有序列化问题这里。

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

(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