ユーザがブラウザでアクセスします。
API Gateway 経由で Lambda 関数1を呼び出します。
関数1が簡単なバリデートを行なった後、Lambda 関数2を呼び出します。
関数2の実行にはある程度の時間がかかります。
関数2の実行完了後、ユーザのブラウザに結果を表示させたいです。
関数1.py
import json import boto3 def lambda_handler(event, context): Payload = json.dumps(event) response = boto3.client('lambda').invoke( FunctionName='関数2', InvocationType='Event', Payload=Payload ) return { 'statusCode': 202, 'body': json.dumps('Hello from Lambda!') }
関数2
import json import boto3 def lambda_handler(event, context): result = 時間のかかる処理() return result
API Gatewayで関数1を呼べるようにしました。
関数1のInvocationTypeをRequestResponseにして、関数2の処理を(ダミーで)軽くしたところ、関数2の結果を表示することができました。(その時のコードは割愛しますが。)
「AWS lambda 別の関数を非同期で呼ぶ 結果をブラウザに表示」などでググったのですが、思ったような検索結果は得られず。
非同期処理とブラウザのことについてよく知らないので、そこでつまずいてるとは思うのですが。
どうしたらブラウザに非同期処理の結果を表示できるのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/24 05:29
2021/01/24 05:44
2021/01/24 07:17
2021/01/25 03:01