我正在尝试从PHP内部通过AWS开发工具包执行lambda函数。 Lambda本身非常简单:
exports.handler = async (event) => {
// TODO implement
const response = {
statusCode: 200,
body: JSON.stringify('Hello from Lambda!'),
};
return response;
};
然后从我的PHP应用程序中运行它:
$lambda = new LambdaClient([
'version' => 'latest',
'region' => 'ap-southeast-2',
'credentials' => [
'key' => '***********',
'secret' => '***********',
]
]);
$result = $lambda->invoke([
'InvocationType' => 'RequestResponse',
'FunctionName' => 'testInvoke',
'LogType' => 'Tail',
'Payload' => '{"somedata":""}'
]);
Lambda函数已成功执行(我可以从CloudWatch日志中看到),但是cURL始终认为它失败了:
错误消息:
在“ https://lambda.ap-southeast-2.amazonaws.com/2015-03-31/functions/testInvoke/invocations”上执行“调用”时出错; AWS HTTP错误:cURL错误0:重试了cURL请求3次,但未成功。失败的最可能原因是cURL无法回退请求的正文,并且随后的重试导致了相同的错误。打开调试选项,看看出了什么问题。有关更多信息,请参见https://bugs.php.net/bug.php?id=47204。(请参见http://curl.haxx.se/libcurl/c/libcurl-errors.html)
实际上,该功能正在运行3次(全部成功),因为不断地重试。
关于如何解决的任何想法?
版本: PHP 5.6.31 狂饮:6.3.3