Nếu đây là trường hợp sử dụng Lambda hoàn toàn sai, vui lòng cho tôi biết.Làm cách nào để gói hoặc cài đặt toàn bộ chương trình chạy trong chức năng AWS Lambda
Tôi muốn cài đặt Scrapy vào một hàm Lambda và gọi hàm để bắt đầu thu thập dữ liệu. Vấn đề đầu tiên của tôi là làm thế nào để cài đặt nó, để tất cả các đường dẫn là chính xác. Tôi đã cài đặt chương trình bằng cách sử dụng thư mục để được nén như là thư mục gốc của nó, do đó, zip chứa tất cả các tệp nguồn và tệp thực thi. Tôi đang dựa trên nỗ lực của mình trên this bài viết. Trong dòng nó nói để bao gồm vào lúc bắt đầu chức năng của tôi, biến "process" xuất phát từ đâu? Tôi đã cố gắng,
var process = require('child_process');
var exec = process.exec;
process.env['PATH'] = process.env['PATH'] + ':' +
process.env['LAMBDA_TASK_ROOT']
nhưng tôi nhận được lỗi,
"errorMessage": "Cannot read property 'PATH' of undefined",
"errorType": "TypeError",
Tôi có cần phải bao gồm tất cả các tập tin thư viện, hoặc chỉ thực thi từ/usr/lib? Làm thế nào để tôi bao gồm một dòng mã mà bài viết nói tôi cần?
Edit: tôi đã cố gắng di chuyển mã vào một child_process.exec, và đã nhận lỗi
"errorMessage": "Command failed: /bin/sh: process.env[PATH]: command not found\n/bin/sh: scrapy: command not found\n"
Đây là hiện tại, toàn bộ chức năng của tôi
console.log("STARTING");
var process = require('child_process');
var exec = process.exec;
exports.handler = function(event, context) {
//Run a fixed Python command.
exec("process.env['PATH'] = process.env['PATH'] + ':' + process.env['LAMBDA_TASK_ROOT']; scrapy crawl backpage2", function(error, stdout) {
console.log('Scrapy returned: ' + stdout + '.');
context.done(error, stdout);
});
};
Có một ví dụ về cách "Chạy R kê trong AWS Lambda" với tất cả các bước sau: http://nafiux.com/blog/2015/09/11/running-r-statistics-in- aws-lambda/ –
@michaelAdam bạn có thể giải quyết vấn đề này không? Tôi gặp vấn đề tương tự chính xác –
HI @michaelAdam, có vẻ như [câu trả lời dưới đây] (https://stackoverflow.com/a/40259180/39396) là chính xác; bạn đã xem xét chấp nhận một trong những câu trả lời cho câu hỏi của bạn chưa? –