AWS Lambda から Lambda の実行(パラメーター、戻り値の受け渡し)

Programming
公開: 2023-05-04

概要

パラメーターは呼び出し時の Payload に設定する。
戻り値はレスポンスの Payload に設定されている。

最小コード

呼び出し側

import boto3
import json

def lambda_handler(event, context):
    request_payload = {
        "hoge": "fuga",
    }
    response = boto3.client('lambda').invoke(
        FunctionName='testFunction02',
        InvocationType='RequestResponse',
        Payload=json.dumps(request_payload),
    )
    print(response)

    response_payload = json.loads(response['Payload'].read())
    print("response_payload", response_payload)
    print("message", response_payload["message"])

呼び出される側

def lambda_handler(event, context):    
    print("event", event)
    hoge = event["hoge"]
    print("hoge", hoge)
    return {
        'message': 'called by testFunction01'
    }

ログの出力内容

呼び出し側

{'ResponseMetadata': {'RequestId': '99830c27-a341-4d7e-91e9-819b2ac779c4', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Thu, 04 May 2023 01:18:14 GMT', 'content-type': 'application/json', 'content-length': '39', 'connection': 'keep-alive', 'x-amzn-requestid': '99830c27-a341-4d7e-91e9-819b2ac779c4', 'x-amzn-remapped-content-length': '0', 'x-amz-executed-version': '$LATEST', 'x-amzn-trace-id': 'root=1-645307d4-0ceef8206574be9626796855;parent=334ddcb92dfdd93e;sampled=0;lineage=364c236b:0|755b2c57:0'}, 'RetryAttempts': 0}, 'StatusCode': 200, 'ExecutedVersion': '$LATEST', 'Payload': <botocore.response.StreamingBody object at 0x7fc323960610>}
response_payload {'message': 'called by testFunction01'}
message called by testFunction01

呼び出される側

event {'hoge': 'fuga'} 
hoge fuga 

参考

Getting AWS Lambda response when using boto3 invoke()