AWS Lambda run命令不会在测试中运行shell命令

时间:2019-10-24 11:32:49

标签: amazon-web-services shell aws-lambda ssm amazon-systems-manager

我在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时,我可以在日志中看到该命令运行成功,但始终无法获得理想的结果。有时,命令在大多数情况下不在实例上运行时运行。导致这种间歇性行为的原因可能是什么?

0 个答案:

没有答案