Команда AWS Lambda run не запускает команды оболочки при тестировании - PullRequest
0 голосов
/ 24 октября 2019

У меня есть Document в Systems Manager, который успешно работает, когда я запускаю документ, используя Run Command в консоли aws. 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, я вижу в журналах, что выполнение команды прошло успешно, но я не всегда получаю желаемые результаты. Иногда команды выполняются, в то время как в большинстве случаев команды не запускаются на экземпляре. Что может быть не так, что вызывает такое прерывистое поведение?

...