tabimoba.net

とあるエンジニアの雑記帳

PHPからaws-sdkで実行したLambda関数の戻り値を取得するには

はじめに

AWS SDK for PHPを利用してLambda関数を実行(invoke)した際の戻り値をどのように取得すればよいのかという情報を探してみたのですが、なかなか情報が見つかりませんでした。

※API Gatewayを利用してLambda関数を実行して戻り値を取得するという方法に関する情報はそれなりにありますが、SDKからLambda関数を実行して戻り値を取得する方法に関する情報がPHPに限らずほとんどありませんでした、あるいは探しづらい状況でした。

PHPの場合、以下のようなコードを実行することでLambda関数からの戻り値を取得することができます。(下記コード内の $invoke->get('Payload')->__toString() でLambda関数からの戻り値を取得することができます)

コード

<?php
$lambda = new \Aws\Lambda\LambdaClient([
            'region' => 'ap-northeast-1',
            'version' => 'latest',
            'profile' => 'default'
        ]);

$invoke = $lambda->invoke([
    'FunctionName' => 'hoge',
    'InvocationType' => 'RequestResponse',
    //"LogType" => "Tail"
]);

$result = json_decode($invoke->get('Payload')->__toString());

// Lambda関数からの戻り値が表示される
var_dump($result);

参考