AWS Lambda によるサーバーレスアプリケーション
Claudio Canales
Senior DevOps Engineer


プッシュモデル
ポーリングモデル

キュー(Amazon SQS)
ストリーム(DynamoDB Streams)

{
"Records": [{
"messageId": "abc-123",
"body": "{\"order_id\": \"A-42\"}"
}]
}
Records で始まります。messageId と body 文字列があります。body を解析して独自のペイロードとして使用します。def lambda_handler(event, context):
records = event.get("Records", [])
for record in records:
body = record.get("body", "")
print("BODY:", body)
return {"statusCode": 200}
Records をデフォルトのリストで取得します。body を安全に読み取ります。import json
def lambda_handler(event, context):
record = event.get("Records", [])[0]
payload = json.loads(record.get("body", "{}"))
order_id = payload.get("order_id")
print("ORDER_ID:", order_id)
return {"statusCode": 200}
json をインポートし、安全なデフォルト値で body を取得します。json.loads で解析してディクショナリを取得します。ApproximateAgeOfOldestMessage を活用しましょう。




def lambda_handler(event, context):
failures = []
for record in event.get("Records", []):
try:
process(record)
except Exception:
failures.append({"itemIdentifier": record["messageId"]})
return {"batchItemFailures": failures}
messageId を batchItemFailures に収集します。
AWS Lambda によるサーバーレスアプリケーション