amazon-web-services - Terraform aws aws_autoscaling_schedule 具有重复性,开始时间从第二天而不是当前日期开始

标签 amazon-web-services terraform terraform-provider-aws

我们有现行政策的 asg。 示例当前日期时间 UTC:2020 年 5 月 23 日,上午 0600 我有策略在 cron 时间上午 1000 点停止和启动实例 但当我现在申请 terraform plan 时,在 aws,我们可以看到政策开始时间为 5 月 24 日上午 1000 点。

所以问题是为什么它不考虑今天的日期

政策目标:日常拆除和创建新实例

resource "aws_autoscaling_schedule" "scale_down" {
  scheduled_action_name = "scale_down"
  min_size = 0
  max_size = 0
  recurrence = "0 10 * * *"
  desired_capacity = 1
  autoscaling_group_name = "${aws_autoscaling_group.asg.name}"
}
resource "aws_autoscaling_schedule" "scale_up" {
  scheduled_action_name = "scale_up"
  min_size = 1
  max_size = 1
  recurrence = "10 10 * * *"
  desired_capacity = 1
  autoscaling_group_name = "${aws_autoscaling_group.asg.name}"
}

最佳答案

我已经用这种方法解决了这个问题,你看一下并给我你的意见。 重复的想法是一旦创建就不再修改。我把当天的最后一分钟。

  locals {   
    today_date = formatdate("YYYY-MM-DD",timestamp())
    min = 0
    max = 1
  }
  resource "aws_autoscaling_schedule" "off" {
      scheduled_action_name  = "off_instance"
      min_size               = local.min
      max_size               = local.max
      desired_capacity       = 0
      start_time             =  "${local.today_date}T23:59:00Z" 
      recurrence             = "0 ${var.hour_to_switch_off} * * *"
      autoscaling_group_name = aws_autoscaling_group.bastion.name
      lifecycle {
        ignore_changes = [start_time]
      }
    }
    
    resource "aws_autoscaling_schedule" "on" {
      scheduled_action_name  = "on_instance"
      min_size               = local.min
      max_size               = local.max
      desired_capacity       = 1
      start_time             =  "${local.today_date}T23:59:00Z" 
      recurrence             = "0 ${var.hour_to_switch_on} * * MON-FRI"
      autoscaling_group_name = aws_autoscaling_group.bastion.name
      lifecycle {
        ignore_changes = [start_time]
      }
    }

关于amazon-web-services - Terraform aws aws_autoscaling_schedule 具有重复性,开始时间从第二天而不是当前日期开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63068018/

相关文章:

docker - 容器内的 Terraform 删除文件

azure - 如何使用托管磁盘的托管 HSM 中存储的客户管理 key 启用服务器端加密?

azure - Azure 服务主体创建应用程序需要什么角色或范围

api - 执行 terraform : Incompatible API version with plugin. 插件版本 : 4, 客户端版本时出现 Terraform 错误消息:[5]

amazon-web-services - 如何转换 CommaDelimitedList 参数以在 CloudFormation 中构建 ARN

ruby-on-rails - 无法使用 Elastic Transcoder Ruby SDK 设置输出持续时间

amazon-web-services - 如何快速上传本地文件到S3?

amazon-web-services - 将 www 子域指向裸域而不是存储桶名称

aws-cloudformation - terraform 从 vpc 端点子网选项卡获取子网集成 ip

amazon-route53 - 为什么会出错,在Terraform aws_route53_record中出现 "alias target name does not lie within the target zone"?