1

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?

passion053
  • 367
  • 4
  • 18

0 Answers0