AWS Lambdaからの戻り値を取得して表示をしてみます。Lambdaからの戻り値はjsonなので、辞書で書いておくと便利なようです。Lambdaで作成した辞書を戻り値として、それをpythonで取得をしていきます。
(1) Lambdaで関数作成
Lambdaから関数の作成を図のように行います。関数名は任意ですが、ここでは「MyFunction001」、ランタイムは「Python3.9」、アクセス権限はデフォルトの実行ロールの変更から「既存のロールを使用する」「LabRole」(これはAWS Academyの場合なので、それ以外は任意です)とします。
(2) Lambdaのソースコードを編集
デフォルトでできたコードは「Hello from Lambda!」と表示されるものです。今回関数URLを有効化してあるので、そのURLにアクセスしてみます。
bodyのところに、辞書を渡してあげると都合が良さそうなので、今回は簡単な辞書を渡します。ソースコード
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import json | |
def lambda_handler(event, context): | |
# TODO implement | |
mydict = { 'key1' :'a', 'key2' :'b', 'key3' :'c', 'key4' :'d'} | |
return { | |
'statusCode': 200, | |
'body': mydict | |
} |
実行するには、Deployを押してからURLにアクセスします。
今度はGoogle Colabでもどのような環境でも良いので、Lambdaの関数URLにアクセスして、情報を取得・表示します。以下のコードを作成して、実行します。ここではGoogle Colabでやっています。
ソースコード
ソースコード
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import json, requests | |
url = requests.get("https://xxxxxxxxxxxxxxxxxxx.lambda-url.us-east-1.on.aws/") | |
mydict = json.loads(url.text) | |
for mykey, myvalue in mydict.items(): | |
print('key: {0}, values: {1}'.format(mykey, myvalue)) |
これで、Lambdaで処理したものを外部プログラムで取得できました。