通过AWS开发工具包从PHP调用Lambda-成功完成cURL返回失败?

时间:2019-04-24 06:16:52

标签: php curl lambda aws-sdk guzzle

我正在尝试从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

0 个答案:

没有答案