首页 > 解决方案 > Terraform:在 aws_autoscaling_schedule 资源中传递自动缩放组名称时出错

问题描述

将模块输出解析到另一个模块资源时出现错误。

错误:

* module.scheduled_action.aws_autoscaling_schedule.asg[0]: 1 error(s) occurred:

    * aws_autoscaling_schedule.asg.0: Error Creating Autoscaling Scheduled Action: ValidationError: AutoScalingGroup name not found - null
        status code: 400, request id: eedacea2-4819-11e9-a48e-2178a7946e4b
    * module.scheduled_action.aws_autoscaling_schedule.asg[1]: 1 error(s) occurred:

    * aws_autoscaling_schedule.asg.1: Error Creating Autoscaling Scheduled Action: ValidationError: AutoScalingGroup name not found - null
        status code: 400, request id: eedbb8f2-4819-11e9-a103-ed59f82b87f3

代码:

预定的.tf

resource "aws_autoscaling_schedule" "asg" {
  count = "${var.actions_count}"
  ..
  ...
  ....
  autoscaling_group_name = "{var.autoscaling_group_name}"
}

变量.tf

variable "autoscaling_group_name" {}

主文件

autoscaling_group_name = "${module.launch_configs.asg_name}"

标签: terraformterraform-provider-aws

解决方案


您将模块变量与局部变量混合。

其中main.tf, 的值autoscaling_group_name来自一个名为 的模块launch_configs,因此您可以在资源中使用相同的名称aws_autoscaling_schedule

代码可以改成

resource "aws_autoscaling_schedule" "asg" {
  count = "${var.actions_count}"
  ..
  ...
  ....
  autoscaling_group_name = "${module.launch_configs.asg_name}"
}

在您的情况下,变量autoscaling_group_namein的定义variables.tf是无用的。你可以删除它。


推荐阅读