gpt4 book ai didi

amazon-web-services - 在 AWS-ECS-Task 完成其任务后,您如何停止它?

转载 作者:行者123 更新时间:2023-12-04 01:28:06 25 4
gpt4 key购买 nike

我已经部署了一个 ECS-Task,它可以备份数据库。完成此操作后,任务仍处于运行状态。有谁知道如何结束任务?我使用 Docker 容器(Spring Boot)并使用 Terraform 部署任务。

编辑:
我的 Terraform 看起来像这样:

resource "aws_ecs_task_definition" "task_definition" {
family = "${var.application_name}"
container_definitions = "${data.template_file.container_definition_tpl.rendered}"
requires_compatibilities = ["FARGATE"]
network_mode = "awsvpc"
execution_role_arn = "arn:aws:iam::${var.account_id}:role/app_execution_role"
task_role_arn = "arn:aws:iam::${var.account_id}:role/app_task_role"
cpu = 256
memory = 512
}

resource "aws_cloudwatch_event_rule" "scheduled_task" {
name = "${var.name}_${var.environment}_scheduled_task"
description = "Run ${var.name}_${var.environment} task at a scheduled time rate (1 day)"
schedule_expression = "cron(* 9 * ? *)"
}

resource "aws_cloudwatch_event_target" "scheduled_task" {
target_id = "${var.name}_${var.environment}_scheduled_task_target"
rule = "${aws_cloudwatch_event_rule.scheduled_task.name}"
arn = "${data.aws_ecs_cluster.ecs_cluster.id}"
role_arn = "${aws_iam_role.ecs_events.arn}"

ecs_target {
task_count = 1
task_definition_arn = "${aws_ecs_task_definition.task_definition.arn}"
launch_type="FARGATE"
platform_version="LATEST"


network_configuration {
assign_public_ip = false
security_groups= [data.aws_security_group.ecs_security_group.id]
subnets =data.aws_subnet_ids.private_subnet_ids.ids
}
}

我有一个每天运行一次的计划任务。但是它创建了一个新任务,而另一个任务仍然在运行,所以一周后我会有 7 个任务。

最佳答案

最后,解决方案非常简单。 问题:该任务在 ECS 服务中运行,也称为计划事件。这导致了很多问题,因为任务在给定时间运行了两次。 解决方案 :最后解决的办法是去掉ECS服务,因为作业不符合ECS服务的要求。答案是仅通过 Schedules 任务调用该任务。此外,实现必须关闭容器,以确保当任务完成时,任务会自动关闭,并且不会有不必要的任务。

关于amazon-web-services - 在 AWS-ECS-Task 完成其任务后,您如何停止它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61478602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com