AWS Lambda不会将文件从/ var / task复制到/ tmp文件夹

时间:2019-12-12 17:50:14

标签: amazon-web-services aws-lambda

我已经用ffmpeg上传了一个lambda的zip文件。我已经运行了ls -l命令来验证ffmpeg实用程序是否存在(尽管没有权限)。 要运行它,我知道我需要将其复制到/tmp文件夹中并更改那里的权限。我尝试用以下方法做到这一点: /bin/sh -c echo 'step0' && cp /var/task/ffmpeg /tmp && echo 'step1' && chmod 755 /tmp/ffmpeg && echo 'step2' && ls /tmp/ ,但我看到的只是测试lambda功能输出中的step0。 似乎复制命令以某种方式失败。 注意:我使用的是Java Lambda,但是在lambda调用和命令似乎可以通过的情况下,我看不到如何在此级别上有所作为。 非常感谢。

更新:

public class Lambda implements RequestHandler<FragmentsRequest, String> {
@Override
public String handleRequest(final FragmentsRequest input, final Context context) {
    final List<String> command = Stream.of(input.getCommand().split(",")).collect(Collectors.toList());
    final String output = runCommandForOutput(command);
    return output;
}

public static String runCommandForOutput(List<String> params) {
    final ProcessBuilder pb = new ProcessBuilder(params);
    Process p;
    String result = "";
    try {
        p = pb.start();
        final BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));

        final StringJoiner sj = new StringJoiner(System.getProperty("line.separator"));
        reader.lines().iterator().forEachRemaining(sj::add);
        result = sj.toString();

        p.waitFor();
        p.destroy();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return result;
}
}

0 个答案:

没有答案