AWS Lambda(Python3.9.10)から別のLambdaを呼び出す

AWS Lambda(Python3.9.10)から別のLambdaを呼び出す

Lambda(Python)からLambda(Python)を呼び出します。

呼び出す側のLambda(Python3.9.10)

python2python

import json
import boto3
def lambda_handler(event, context):
    response = boto3.client('lambda').invoke(
        FunctionName = 'python-template',
        InvocationType='RequestResponse'
        )
    print(response)
    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }

FunctionNameでLambda名を指定します。

InvocationTypeは以下を指定することが出来ます。

InvocationType 意味
RequestResponse 同期処理
Event 非同期処理

インラインポリシー作成し、許可を追加します。123456789012はアカウントIDです。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Statement1",
            "Effect": "Allow",
            "Action": "lambda:InvokeFunction",
            "Resource": "arn:aws:lambda:*:123456789012:function:*"
        }
    ]
}

呼び出される側のLambda(Python3.9.10)

python-template.py

import json

def lambda_handler(event, context):
    # TODO implement
    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }

テスト

呼び出す側のLambdaの「テスト」を実行します。

呼び出される側のCloudWatchログを見ると、ログ出力されますので実行されたことが確認できます。

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました