首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在aws中使用aws ecs ecs命令,对于cron之类的用法来说不是本地的。

在aws中使用aws ecs ecs命令,对于cron之类的用法来说不是本地的。
EN

Stack Overflow用户
提问于 2022-05-25 14:14:57
回答 1查看 482关注 0票数 -1

我有法门集装箱。

现在我可以访问容器并执行命令,例如,(在本例中,我使用ls -la进行测试)

代码语言:javascript
复制
aws ecs execute-command --cluster tvn-prod-cn --container TravelDjangoContainer --interactive --command 'ls -la' --task 0e63831d80654bbb88cbcc4d002b3d4f

所以,我想要做的是将这个命令设置为cron。

我的想法如下

  • SSM RunCommand中设置此命令
  • RunCommand触发EventBridge

有可能吗??

如何在RunCommand中设置此命令?

我用lambda做了serverless

我在谷歌上搜索并制作了这个脚本,但是它是不正确的,有人可以帮助或样本吗??

代码语言:javascript
复制
'use strict';
const AWS = require('aws-sdk')
const SSM = new AWS.SSM({region: 'ap-northeast-1'})
const REMOTE_WORKING_DIR = '/home/ec2-user'

module.exports.hello = async (event) => {
  try {
    let command = 'ls -la'

    let params = {
      DocumentName: 'AWS-RunExecScript',
      Parameters: {
        commands: [command],
        workingDirectory: [REMOTE_WORKING_DIR]
      },
      CloudWatchOutputConfig: {
        CloudWatchLogGroupName: 'SSMLogs',
        CloudWatchOutputEnabled: true
      },
      TimeoutSeconds: 3600 // 1 hour
    }

    SSM.sendCommand(params, function(err, data){
      if(err){
        console.log(err, err.stack)
      } else {
        console.log(data)
      }
    });
  } catch(e){
    console.log(e);
  };

  return {
    statusCode: 200,
    body: JSON.stringify(
      {
        message: 'Go Serverless v1.0! Your function executed successfully!',
        input: event,
      },
      null,
      2
    ),
  };

};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-25 14:26:02

我将创建一个Lambda函数,它调用ECS RunCommand并使用EventBridge cron计划调度任务,而不是使用SSM 命令()来运行任务。

如果您想使用SSM RunCommand,您将需要一个EC2服务器,它可以从它运行aws ecs execute-command CLI命令,这肯定不是您想要的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72379266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档