在 aws 中使用 aws ecs execute-command 不是本地的 cron 类用法
Using aws ecs execute-command in aws not local for cron like usage
我有 Fargate 容器。
现在我可以访问容器并执行诸如 , 之类的命令(在这种情况下我做了 ls -la
进行测试)
aws ecs execute-command --cluster tvn-prod-cn --container TravelDjangoContainer --interactive --command 'ls -la' --task 0e63831d80654bbb88cbcc4d002b3d4f
所以,我想做的是将此命令设置为类似 cron 的命令。
下面是我的想法
在SSM RunCommand
中设置此命令
触发 RunCommand
EventBridge
可能吗??
如何在 RunCommand 中设置此命令?
我用 serverless
制作了 lambda
我用谷歌搜索并制作了这个脚本,但它不正确,,,任何人都可以提供帮助或示例吗??
'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
),
};
};
我不使用 SSM RunCommand,它并不是真正设计用于 运行 ECS 中的任务,而是创建一个调用 ECS execute_command() and schedule that using the EventBridge cron schedule.
的 Lambda 函数
如果你想使用 SSM RunCommand,你需要一个 EC2 服务器,它可以 运行 aws ecs execute-command
CLI 命令,这肯定不是你想要的。
我有 Fargate 容器。
现在我可以访问容器并执行诸如 , 之类的命令(在这种情况下我做了 ls -la
进行测试)
aws ecs execute-command --cluster tvn-prod-cn --container TravelDjangoContainer --interactive --command 'ls -la' --task 0e63831d80654bbb88cbcc4d002b3d4f
所以,我想做的是将此命令设置为类似 cron 的命令。
下面是我的想法
在
中设置此命令SSM RunCommand
触发
RunCommand
EventBridge
可能吗??
如何在 RunCommand 中设置此命令?
我用 serverless
lambda
我用谷歌搜索并制作了这个脚本,但它不正确,,,任何人都可以提供帮助或示例吗??
'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
),
};
};
我不使用 SSM RunCommand,它并不是真正设计用于 运行 ECS 中的任务,而是创建一个调用 ECS execute_command() and schedule that using the EventBridge cron schedule.
的 Lambda 函数如果你想使用 SSM RunCommand,你需要一个 EC2 服务器,它可以 运行 aws ecs execute-command
CLI 命令,这肯定不是你想要的。