Настроить AWS Lambda для работы с PHP + MySQL?

Я пытаюсь сделать AWS Lambda функция запуска PHP код и MySQL,

Для этого я последовал этот урок и удалось получить PHP работает, но когда я пытаюсь добавить свой MySQL код я получаю ошибку. Ошибка не говорит о многом, это выглядит так:

"errorMessage": "RequestId: 14a46e73-xxx-xxx-b810-11db18dxxx0 Process exited before completing request"

И журнал идет как

START RequestId: 14a46e73-xxx-xxx-b810-11db18dxxx0 Version: $LATEST
2017-02-27T19:08:12.544Z    14a46e73-xxx-xxx-b810-11db18dxxx0   SyntaxError: Unexpected token F
at Object.parse (native)
at ChildProcess.<anonymous> (/var/task/php.js:29:34)
at emitTwo (events.js:87:13)
at ChildProcess.emit (events.js:172:7)
at maybeClose (internal/child_process.js:821:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)
END RequestId: 14a46e73-xxx-xxx-b810-11db18dxxx0
REPORT RequestId: 14a46e73-xxx-xxx-b810-11db18dxxx0 Duration: 293.96 ms Billed Duration: 300 ms     Memory Size: 128 MB Max Memory Used: 12 MB
RequestId: 14a46e73-xxx-xxx-b810-11db18dxxx0 Process exited before completing request

Похоже, что жалуется на Unexpected token F но я не могу найти ничего, что могло бы вызвать проблему с моим кодом, что довольно просто, поскольку я просто проверял, могу ли я подключиться к MySQL.

мой PHP код следующий

$servername = "xx";
$username = "xx";
$password = "xx";
$dbname = "xx";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection
if ($conn->connect_error) {
//die("Connection failed: " . $conn->connect_error);
}//If I remove everything above this line it works

$data = stream_get_contents(STDIN);

$json = json_decode($data, true);

$result = json_encode(array('result' => count($json)));

echo $result;

Как вы можете видеть, я только что добавил простое соединение с MySQL к коду в руководстве. Когда я удаляю эту часть, код работает нормально.

В этот момент я начинаю задумываться, возможно ли это вообще вообще.
Любые советы в правильном направлении будут оценены.

php.js

process.env['PATH'] = process.env['PATH'] + ':' + process.env['LAMBDA_TASK_ROOT'];

const spawn = require('child_process').spawn;

exports.handler = function(event, context) {

//var php = spawn('php',['helloLambda.php']); //local debug only
var php = spawn('php-7-bin/bin/php',['hello.php']);
var output = "";

//send the input event json as string via STDIN to php process
php.stdin.write(JSON.stringify(event));

//close the php stream to unblock php process
php.stdin.end();

//dynamically collect php output
php.stdout.on('data', function(data) {
output+=data;
});

//react to potential errors
php.stderr.on('data', function(data) {
console.log("STDERR: "+data);
});

//finalize when php process is done.
php.on('close', function(code) {
context.succeed(JSON.parse(output));
});
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]