当前位置: 首页 > 知识库问答 >
问题:

安排AWS ECS Fargate启动和停止任务

羊浩广
2023-03-14

我的目标是运行ECS容器之间的8AP-5PM仅!

共有1个答案

戎兴言
2023-03-14

Francesco Grotta的回答是对的。我们可以创建以下资源,以按期触发此操作:

  • 一个lambda函数,通过更新ECS服务DesiredCount来启动或停止。
  • 计划的CloudWatch事件,以启动ECS任务。
  • 计划的CloudWatch事件,以停止ECS任务。

Lambda函数,它将根据CloudWatch事件的输入启动或停止ECS服务:

    if(event.status == 'stop'){
        var params = {
            cluster: process.env.ECS_CLUSTER,
            service: process.env.ECS_SERVICE_NAME,
            desiredCount: 0
        };
    }
    else{
        var params = {
            cluster: process.env.ECS_CLUSTER,
            service: process.env.ECS_SERVICE_NAME,
            desiredCount: 1
        };
    }

    var ecs = new AWS.ECS();
    ecs.updateService(params, function (err, data) {
        if (err) console.log(err, err.stack); // an error occurred
        else console.log(data);           // successful response
    });
  StartEcsLambdaSchedule:
    Type: AWS::Events::Rule
    Properties:
      Description: >
        A schedule for the Lambda function to start ECS service during office hours.
      ScheduleExpression: !Ref StartEcsLambdaScheduleExpression
      State: ENABLED
      Targets:
        - Arn: !Sub ${EcsTaskScheduleLambdaFunction.Arn}
          Id: StartEcsLambdaScheduleV1
          Input: '{"status": "start"}'

  StopEcsLambdaSchedule:
    Type: AWS::Events::Rule
    Properties:
      Description: >
        A schedule for the Lambda function to stop ECS service after office hours.
      ScheduleExpression: !Ref StopEcsLambdaScheduleExpression
      State: ENABLED
      Targets:
        - Arn: !Sub ${EcsTaskScheduleLambdaFunction.Arn}
          Id: StopEcsLambdaScheduleV1
          Input: '{"status": "stop"}'
 类似资料:
  • 注意Workerman启动停止等命令都是在命令行中完成的。 要启动Workerman,首先需要有一个启动入口文件,里面定义了服务监听的端口及协议。可以参考入门指引—简单开发实例部分 这里以workerman-chat为例,它的启动入口为start.php。 启动 以debug(调试)方式启动 php start.php start 以daemon(守护进程)方式启动 php start.php s

  • 我无法停止。它的样式是。如何启动和停止圆形的小型?

  • 参考 workerman手册 http://doc3.workerman.net/install/start-and-stop.html

  • 注意Workerman启动停止等命令都是在命令行中完成的。 要启动Workerman,首先需要有一个启动入口文件,里面定义了服务监听的端口及协议。可以参考入门指引--简单开发实例部分 这里以workerman-chat为例,它的启动入口为start.php。 启动 以debug(调试)方式启动 php start.php start 以daemon(守护进程)方式启动 php start.php

  • 问题内容: 我正在使用类,并且正在使用其schedule方法执行某些任务,但是在执行了6次之后,我必须停止其任务。 我该怎么办? 问题答案: 在某个地方保留对计时器的引用,并使用: 停止所做的一切。您可以将此代码放在要执行的任务中,static int以计算您经过的次数,例如

  • 本文档叙述了在类Unix系统上如何停止和重启Apache 。 Windows NT/2000/XP/2003的用户请参见以服务方式运行Apache ,Windows 9x/ME用户则参见在控制台中运行Apache 。 简介 为了停止或者重新启动Apache ,你必须向正在运行的httpd进程发送信号。有两种发送信号的方法。第一种方法是直接使用UNIX的kill命令向运行中的进程发送信号。你也许你会