Runbook 作业在 Azure 自动化中暂停

本文提供了有关 Runbook 作业在 Azure 自动化中暂停的问题的解决方案。

注释

Azure Automation 支持恢复在过去 29 天内删除的这些 runbooks。 可以通过在自动化帐户中将 PowerShell 脚本作为作业运行来还原已删除的 Runbook。 有关详细信息,请参阅 还原已删除的运行手册

症状

在连续三次启动尝试失败后,Runbook 作业可能会被暂停。

原因 1:超出 Azure 沙盒中的内存或网络套接字限制

  • 内存限制

    如果作业使用的内存超过 400 MB,则作业可能会失败。

  • 网络套接字限制

    Azure 沙盒的网络连接数量限制为 1,000 个同时连接。

有关详细信息,请参阅 Azure 自动化限制

下面是在内存限制内工作的一些建议:

  • 在多个 runbook 之间拆分工作负载。
  • 减少内存中处理的数据量。
  • 避免从 runbook 写入不必要的输出。
  • 请考虑在 PowerShell 工作流运行手册中写入的检查点数。

下面是一些操作,可以在运行时减少 Runbook 的内存占用。

  • 使用方法 clear (例如 $myVar.clear)清除变量。
  • 使用[GC]::Collect命令立即运行垃圾回收。

原因 2:模块不兼容

模块依赖项可能不正确。 在这种情况下,Runbook 通常会返回“找不到命令”或“无法绑定参数”错误消息。

若要解决此问题, 请在 Azure 自动化中更新 Azure PowerShell 模块

原因 3:未在 Azure 沙盒中使用 Microsoft Entra ID 进行身份验证

尝试在 Azure 沙盒环境中调用可执行文件或子进程的这些 Azure 自动化的运行手册无法使用 Microsoft 身份验证库 (MSAL) 通过 Microsoft Entra ID 进行身份验证。

若要解决此问题,请使用自动化帐户的托管标识。 使用托管标识通过 Microsoft Entra ID 对此运行手册进行身份验证时,请确保以下事项:

  • 自动化帐户中提供了 Microsoft Graph PowerShell 模块。
  • 向托管标识授予执行 Runbook 自动化任务所需的权限。

如果你的 Runbook 无法在 Azure 沙盒中调用可执行文件或子进程,请在混合工作器上运行该 Runbook。 混合辅助角色不受 Azure 沙盒的内存和网络限制的约束。

参考文献

联系我们以获得帮助

如果您有任何疑问或需要帮助,可以创建支持请求,或咨询Azure社区支持。 您还可以向Azure反馈社区提交产品反馈。