I am trying to invoke AWS Lambda function using AWS SDK for PHP V3.
My source code:
require '../vendor/autoload.php';
use Aws\Lambda\LambdaClient;
use Aws\Exception\AwsException;
$lambdaClient = new Aws\Lambda\LambdaClient([
'version' => 'latest',
'region' => 'us-east-1',
'credentials' => [
'key' => 'MY_ACCESS_KEY',
'secret' => 'MY_SECRET_KEY'
]
]);
$strArrTemp = array('key1' => 'Hello', 'key2' => 'World');
$result = $lambdaClient->invoke([
'FunctionName' => 'testFunc',
'Payload' => json_encode($strArrTemp)
]);
echo $result->get('Payload')->getBody();
This results below:
Fatal error: Call to undefined method GuzzleHttp\Psr7\Stream::getBody() in C:\Apache24\htdocs\FirewallChecker\php\main.php on line xx
The result of var_dump($result->get('Payload')) is below:
object(GuzzleHttp\Psr7\Stream)[116]
private 'stream' => resource(158, stream)
private 'size' => null
private 'seekable' => boolean true
private 'readable' => boolean true
private 'writable' => boolean true
private 'uri' => string 'php://temp' (length=10)
private 'customMetadata' =>
array (size=0)
empty
And the result of 'echo $result->get('Payload')' is below:
{"statusCode": 777, "body": {"key1": "Hello", "key2": "World"}}
I find the link below but it didn't help because getBody() and getContents doesn't work to me at all.
https://stackoverflow.com/a/30549372/6192555
The python code on AWS LAMBDA is below:
import json
import socket
from contextlib import closing
def lambda_handler(event, context):
return {
'statusCode': 777,
'body': event
}
What should I do?