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

无法将实例ID传入自动化关联,如何用Terraform执行SSM自动化文档?

解决Terraform执行AWS-CreateDSManagementInstance自动化文档的问题

你的错误根源是用错了Terraform资源:aws_ssm_association是用来将SSM文档长期关联到目标资源(比如实例、标签组),让文档定期/按条件重复执行的;而AWS-CreateDSManagementInstance是一次性的自动化工作流(用于创建管理实例),不需要关联到现有实例,应该用aws_ssm_automation_execution资源来触发执行。

正确的Terraform配置

保留原有的data "aws_ssm_document"部分,替换aws_ssm_association为以下配置:

resource "aws_ssm_automation_execution" "domain_service_management_instance" {
  document_name = data.aws_ssm_document.directory_management.name

  parameters = {
    DirectoryId            = aws_directory_service_directory.aws-managed-ad[0].id
    KeyPairName            = var.key_name
    IamInstanceProfileName = aws_iam_instance_profile.controller.name
    SecurityGroupName      = aws_security_group.amazon_ssm_directory_service_security_group.id
    AmiId                  = var.directory_management_ami_id
    InstanceType           = var.windows_instance_type
    AutomationAssumeRole   = "arn:aws:iam::1234567890:role/aws-service-role/ssm.amazonaws.com/AWSServiceRoleForAmazonSSM"
  }

  # 可选:如果需要等待自动化执行完成再继续后续资源创建
  depends_on = [aws_directory_service_directory.aws-managed-ad]
}

关键说明

  • 移除了targets和automation_target_parameter_name:因为这个自动化文档是主动创建实例,不需要预先指定目标实例;
  • aws_ssm_automation_execution会触发一次性的自动化工作流执行,完全匹配AWS-CreateDSManagementInstance的使用场景;
  • 确保AutomationAssumeRole拥有足够权限:需要允许SSM服务创建EC2实例、访问Directory Service等相关权限(你指定的AWS托管角色通常已经包含这些权限,但可以根据实际情况验证)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 21:46:11