AmazonECSにおいて、タスクを定期的に実行することができます。
その際に考慮すべきポイントが2点あります。
Terraform v1.4.2
on darwin_amd64
+ provider registry.terraform.io/hashicorp/aws v4.48.0
+ provider registry.terraform.io/hashicorp/random v3.4.3
①cloudwatch_event_targetが依存関係を参照できないのでやむを得ず明示的にdepends_onを使用する
cloudwatch_event_rule.tf
resource "aws_cloudwatch_event_rule" "example" {
# ...
}
resource "aws_cloudwatch_event_target" "example" {
# ...
depends_on = [
aws_cloudwatch_event_rule.example,
]
}
②最新のタスクが実行できるよう同期を取るため、リビジョン番号は記述しないようにする
cloudwatch_event_rule.tf
// リビジョン番号を削除
locals {
task_definition_arn_without_revision = replace(
aws_ecs_task_definition.example_latest.arn, "/:[0-9]+$/", ""
)
}
ecs_target {
task_count = 1
task_definition_arn = data.aws_ecs_task_definition.example_latest.arn
launch_type = "FARGATE"
# ...
data.tf
data "aws_ecs_task_definition" "example_latest" {
task_definition = aws_ecs_task_definition.example.family
}