You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用aws:sleep实现AWS SSM Association实例间60秒暂停报错,用法是否正确?

问题解答

你的aws:sleep用法不正确,报错原因是:

  • Command类型的SSM文档不支持aws:sleep插件,该插件仅属于Automation类型的SSM文档,因此会触发"Unknown plugin name"错误。

正确实现实例间60秒暂停的方案

你要实现的是「处理完一台实例后,暂停60秒再处理下一台」,结合你已设置的max_concurrency = "1"(一次仅处理1台实例),无需在SSM文档中添加sleep步骤,以下是两种简单可行的方式:

方式一:在PowerShell脚本中添加延迟

直接在你的PowerShell脚本末尾加入本地sleep命令,利用max_concurrency=1的特性,当前实例脚本执行完成(包含60秒延迟)后,SSM才会启动下一台实例的关联执行。

修改你的local.commands内容(示例):

# 原有业务命令
Write-Host "执行业务操作"
# 添加60秒延迟
Start-Sleep -Seconds 60

同时移除SSM文档中的aws:sleep步骤,修改后的SSM文档资源:

resource "aws_ssm_document" "ssm_document" {
  name            = "SSM-Association"
  document_type   = "Command"
  document_format = "JSON"

  content = jsonencode({
    schemaVersion = "2.2",
    description   = "Document to run a command on Windows instances",
    parameters    = {},
    mainSteps     = [
      {
        action       = "aws:runPowerShellScript",
        name         = "runPowerShellScript",
        inputs       = {
          runCommand = split("\n", trimspace(local.commands))
        },
        precondition = {
          StringEquals = [
            "platformType",
            "Windows"
          ]
        }
      }
    ]
  })
}

方式二:改用Automation类型文档(进阶)

如果不想在实例本地占用资源等待,可以将SSM文档类型改为Automation,此时就能合法使用aws:sleep插件,通过Automation流程控制实例遍历、命令执行、延迟的全流程。但这种方式配置相对复杂,适合需要更精细流程控制的场景。


内容的提问来源于stack exchange,提问作者gklucard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 15:32:15