我在Document
中有一个Systems Manager
,当我在aws控制台中使用Run Command
运行文档时,它可以成功运行。 Document
有几行bash命令,我想在一个实例上运行。
这是我的lambda
代码,我正在尝试使用ssm.sendCommand
来调用文档。
const AWS = require('aws-sdk');
const ssm = new AWS.SSM();
exports.handler = async (event) => {
// const ec2InstanceId = event.detail.EC2InstanceId;
const ec2InstanceId = "<aws-instance-id>";
console.log(ec2InstanceId);
const documentName = "test_document";
ssm.sendCommand({
DocumentName: documentName,
InstanceIds: [ ec2InstanceId ],
TimeoutSeconds: 60
}, function(err, data) {
if (err) {
console.log(JSON.stringify(err));
} else {
console.log(data);
}
});
console.log("run command successful");
};
问题是,当我从aws控制台测试此lambda时,我可以在日志中看到该命令运行成功,但始终无法获得理想的结果。有时,命令在大多数情况下不在实例上运行时运行。导致这种间歇性行为的原因可能是什么?