小编Jam*_*amZ的帖子

Python lambda 函数返回 KeyError

我正在尝试使用 Python 3.6 创建简单的 Lambda 函数。

该函数应该在请求查询字符串参数中获取一个 userId(我在 DynamoDB 中的主键),如果项目存在于 DB 中,则返回 200,这是我的 lambda 函数

import boto3
import os
from boto3.dynamodb.conditions import Key, Attr

def lambda_handler(event, context):

  userId = event["userId"]

  dynamodb = boto3.resource('dynamodb')
  table = dynamodb.Table(os.environ['Customers'])
  items = table.query(
  KeyConditionExpression=Key('userId').eq(userId)
  )

  return items["Items"]
Run Code Online (Sandbox Code Playgroud)

当我在 Lambda 接口中进行测试时,它可以工作并返回正确的用户,但是,当从 Postman 尝试或使用 API Gateway 时,它返回以下错误

{
"errorMessage": "'userId'",
"errorType": "KeyError",
"stackTrace": [
    [
        "/var/task/index.py",
        7,
        "lambda_handler",
        "userId = event["userId"]"
    ]
]
}
Run Code Online (Sandbox Code Playgroud)
  • 我在这里错过了什么?
  • 努力理解“事件”,文档说明它是一个 python 字典,但是当从 Postman 或 API Gateway 调用时,我如何打印它的结果并实际调试 lambda?

python amazon-web-services python-3.x aws-lambda

9
推荐指数
1
解决办法
2万
查看次数

为CloudFront禁用缓存

我正在使用自己的域通过CloudFront为HTTPS s3存储桶提供服务。我不希望它因为QA环境而被缓存。

我想知道我怎么能做到这一点。是使用Origin Cache Headers还是使用0生存时间进行自定义?

https amazon-s3 amazon-cloudfront

8
推荐指数
2
解决办法
5525
查看次数