AWSのdynamoDBにて、複数の店舗データを管理しています。
Lambda関数でdynamoDBよりデータを配列に格納し、そのデータをキーとして
あるサービスのAPIより、認証情報を取得するプログラムを作成しています。
1店舗であれば、現時点で実装できるのですが、
これを複数の店舗分について、ループで実装したいと考えています。
現状ですと、ループの中でreturnをしても最初のループの結果しか返さないので、
これを複数の店舗の認証情報を返すようにしたいのです。
5店舗ならループ5回、10店舗ならループを10回して、各々の店舗の認証情報を返すようにしたいのです。
配列やJSONなどのデータを戻り値にすればよいかとも考えたのですが、それを戻り値にしてしまうと、その後の取得した認証情報を使った処理を直接できなくなるため、何かいい方法はないかと思い、質問致しました。
ご教示の程よろしくお願い致します。
Python
1import requests 2import json 3import boto3 4 5dynamodb = boto3.resource('dynamodb') 6table = dynamodb.Table(テーブル名) 7store = {} 8 9# 認証情報を取得する関数 10def getAuth(i): 11 # 認証情報取得処理 # 12 13# main 14def lambda_handler(event, context): 15 # テーブルのデータ全件取得 16 request = table.scan() 17 n = 0 18 for item in request['Items']: 19 store[n] = { 20 'id': item['store_id'], 21 'name': item['store_name'], 22 (中略) 23 } 24 n += 1 25 26 for i in range(n): 27 # 認証情報を取得し、返す 28 return getAuth(i) 29
回答1件
あなたの回答
tips
プレビュー