Openssl на лямбду с Nodejs10 в амазоне linux 2 - PullRequest
1 голос
/ 11 декабря 2019

Amazon Linux 2, лямбда

Я не могу запустить OpenSSL с консольным вызовом в лямбде со временем выполнения node10.x. AWS оставит поддержку для узла 8.10, и у меня есть платформа без сервера, которая использует OpenSSL с консольным вызовом с узла 8.10

Мой код был похож на следующий

var exec = require('child_process').exec;

exports.handler = async (event) => {
    // TODO implement
    var queryOpenssl = "echo gatos | openssl base64"
    exec(queryOpenssl, function (error, stdout, stderr) {
        var flgError = !!error
        var flgStdout = !!stdout
        var flgStderr = !!stderr
        console.log("flgError", flgError)
        console.log("flgStdout", flgStdout)
        console.log("flgStderr", flgStderr)
        console.log("stdout : ", stdout)
        console.log("error : ", error)
        console.log("stderr : ", stderr)
        const response = {
            statusCode: 200,
            body: JSON.stringify('Hello from Lambda!'),
        };
        return response;
    })
};

И ответвсегда был command not found: openssl

Я провел следующие тесты
1. Поиск openssl с помощью wich openssl, но это не удалось.
2. Поиск openssl с помощью find / openssl, но Amazon Linux 2 неУ него нет этой команды.
3. Поиск openssl для некоторых каталогов прошел безуспешно.

1 Ответ

1 голос
/ 12 декабря 2019

Я решил эту проблему.

Мне пришлось получить бинарный файл из EC2 с Amazon Linux 2
1. Пробудить EC2 ami-00068cd7555f543d5 (64-bit x86) / ami-035240afa793cddbb Возьми этот AMI
2Откройте ssl-соединение в EC2 и выполните whereis openssl, и вы получите результат
3. Вы найдете путь к openssl
4. На вашем компьютере вы должны выполнить следующую команду scp -i file.pem ec2-user@.......com:/usr/bin/openssl ./ длячтобы получить двоичный файл openssl
5. Вы должны создать слой для своих лямбда-функций и установить ENVIRONMENT VARIALE PATH с этим значением /var/lang/bin:/usr/local/bin:/usr/bin/:/bin:/opt/bin:/opt/lib, при этом вы переопределите PATH в Amazon Linux 2 ивозьмет двоичные файлы в / opt / lib route где openssl слоя.

...