在自动化中更新 Azure PowerShell 模块

本文介绍如何在 Azure 自动化 中更新 Azure PowerShell (Az) 模块。 Az PowerShell 模块是一组 cmdlet,用于直接从 PowerShell 管理 Azure 资源。 Azure 自动化 默认在每个自动化账户中提供通用的 PowerShell 模块。 更多信息请参见 默认模块。 由于 Azure 团队会定期更新 Azure 模块,因此包含的 cmdlet 可能会发生更改。 例如,重命名参数或完全弃用一个命令子。 如果模块没有相应更新,这些变更可能会影响现有的运行手册和自动化流程。 为了帮助管理这些更新,Azure 自动化 提供了两种方法来更新 Az 模块:

注意

无法删除全局模块,这些模块是自动化系统内置提供的。

重要

通过新的运行时环境体验,可以通过配置作业执行环境来管理模块和包。 在新体验中,模块和封装刀片不再可用。 若要管理模块和包,请参阅管理运行时环境和关联的 Runbook。

设置自动化帐户

为了避免影响您的运行手册及其自动化过程,请确保在进行更新时进行测试和验证。 如果没有用于此目的专用自动化帐户,请考虑创建一个自动化帐户,以便可以在 Runbook 开发期间测试许多不同的方案。 该测试应该包括更新 PowerShell 模块等迭代更改。

确保自动化帐户已添加系统分配的托管标识或用户分配的托管标识。

如果在本地开发脚本,建议测试时在本地使用与自动化帐户中相同的模块版本,以确保收到相同的结果。 在结果验证并应用所需更改后,你可以将这些更改迁移到生产环境。

注意

新自动化帐户可能不包含最新的模块。

更新 Az 模块

以下各节介绍了如何通过门户(推荐)或通过 Runbook 更新 Az 模块。

通过 Azure 门户更新 Az 模块

目前,Az模块的更新只能通过门户进行。 将来会提供通过 PowerShell 和 ARM 模板进行的更新。 执行以下步骤时,只会更新默认的 Az 模块:

  1. 登录到 Azure 门户,转到自动化帐户。

  2. 在共享资源下,选择模块。

  3. 选择更新 Az 模块。

  4. 选择要更新的模块。 默认情况下,它显示的是 Az 模块。

  5. 从下拉列表中选择 模块版本 和 运行时版本。

  6. 选择 “更新 ”以将 Az 模块更新到你选择的版本。 在“模块”页上,可查看如下列表:

    根据所选项更新 Az 模块页面。

如果你选择的版本低于自动化帐户中导入的现有 Az 模块版本,则更新操作将执行回退到选定的低版本的操作。

可以通过在“PowerShell 模块”下检查“模块”列表中更新模块的版本和状态属性来验证更新操作。

Azure团队会定期更新模块版本,并提供通过下拉列表选择模块版本来更新默认Az模块的选项。

通过运行手册更新 Az 模块

若要在自动化帐户中更新 Azure 模块:

  1. 使用开源提供的 Update-AutomationAzureModulesForAccount runbook。
  2. 要开始使用此运行手册来更新您的 Azure 模块,请从 GitHub 存储库下载。
  3. 将其导入到自动化帐户,或将其作为脚本运行。 若要了解如何在自动化帐户中导入 Runbook,请参阅导入 Runbook。

注意

建议通过 Azure 门户更新 Az 模块。 也可以使用 Update-AutomationAzureModulesForAccount 脚本执行此操作,该脚本作为开放源代码及参考提供。 但是,如果出现任何 runbook 故障,需要根据需要修改 runbook 中的参数或根据场景调试脚本。

默认情况下,Update-AutomationAzureModulesForAccount Runbook 支持更新 Azure、AzureRM 和 Az 模块。 有关更新 Az 模块的详细信息,请查看 Update Azure 模块手册 README。 使用此 Runbook 的自动化模块。 在使用自动化账户中的 Az 模块时,还有其他重要因素需要考虑。 若要了解更多信息,请参阅在 Azure 自动化中管理模块。

使用更新的 Runbook 代码作为常规 PowerShell 脚本使用

你可以使用 Runbook 代码作为常规 PowerShell 脚本而非 Runbook。 操作方法是先用 Connect-AzAccount cmdlet 登录 Azure,然后传递-Login $false给脚本。

使用更新手册

使用 AzEnvironment 参数将正确的环境传递给 runbook。 可接受的值为 AzureChinaCloud。 你可以用 Get-AzEnvironment | select Name来检索这些值。

使用更新手册更新特定模块的版本

若要使用特定的 Azure PowerShell 模块版本而不是 PowerShell 库中的最新可用版本,请将这些版本传递给 Update-AutomationAzureModulesForAccount Runbook 的可选 ModuleVersionOverrides 参数。 有关示例,请参阅 Update-AutomationAzureModulesForAccount.ps1 Runbook。 ModuleVersionOverrides 参数中未提及的 Azure PowerShell 模块会更新为 PowerShell 库中的最新模块版本。 如果没有向 ModuleVersionOverrides 参数传递任何内容,则所有模块都会更新为 PowerShell 库中的最新模块版本。 此行为与 Azure 门户中的“更新 Azure 模块”按钮的行为相同。

后续步骤