我正在为 AWS 系统构建一个 Terraform 配置,该系统只需要自动扩展组中的一个实例才能每天运行 cronjob。
是否可以在 HCL 中与 AWS 提供商表达这一点? 社区的"最佳实践"建议是什么? 我宁愿不使用批处理计算,因为这需要 ECS。
提前非常感谢。
如果要在实例上使用 cron,可以通过将 max_size、min_size 和 desired_capacity all 设置为 1 来创建单实例自动缩放,如下所示:
resource "aws_autoscaling_group" "foo" {
name = "foo"
max_size = 1
min_size = 1
desired_capacity = 1
# Other params...
}
如果要替换实例,可以将其状态设置为"运行状况不佳",ASG 将替换它。如果您需要更多保护来避免一次运行代码的多个副本,则需要在应用程序级别执行更复杂的操作(例如,获取分布式锁(。