【问题标题】:Error when creating items AWS Lambda to DynamoDB with python使用 python 创建项目 AWS Lambda 到 DynamoDB 时出错
【发布时间】:2016-05-04 06:36:45
【问题描述】:

我正在尝试在我的表中创建一个新项目,并且每次运行以下代码时:

from __future__ import print_function
from decimal import *
import boto3
import json

def my_handler(event, context):
    marker = event['m']
    latitude = Decimal(event['lat']) 
    longitude = Decimal(event['lon'])
    tableminfo = 'minfo'
    client = boto3.client('dynamodb')

    client.put_item(
      TableName = tableminfo, Item = {
      'marker':{'N' : marker},
      'latitude':{'N' : latitude},
      'longitude':{'N' : longitude},
        }
    )

    success = "Success"     
    return {'success' : success}

在 Lambda 中使用以下测试参数

{
  "m": 1,
  "lat": 52.489505,
  "lon": 13.389687
}

我在以下几行中收到错误消息: 17, “我的处理程序”, "'longitude':{'N' : longitude},"

【问题讨论】:

  • 您还有返回的错误信息吗?你能检查一下日志吗?应该对遇到的确切错误进行一些描述,以帮助调试。
  • 实际上,在您发送此内容后,我意识到日志要深入得多,然后我才意识到 Lambda 和 Dynamo 只有字符串除外所以我更改了代码以将项目添加为字符串

标签: python amazon-dynamodb aws-sdk aws-lambda


【解决方案1】:

您必须将值更新为字符串:

client.put_item(
      TableName = tableminfo, Item = {
      'marker':{'N' : str(marker)},
      'latitude':{'N' : str(latitude)},
      'longitude':{'N' : str(longitude)},
        }
    )

【讨论】:

    【解决方案2】:

    您还可以使用 boto3 为 DynamoDB 提供的更高级别的资源接口。它为您处理了许多低级细节。这是使用资源层的代码版本。

    假设您的活动如下所示:

    {
      "m": 1,
      "lat": 52.489505,
      "lon": 13.389687
    }
    

    此代码会将数据持久保存到 DynamoDB

    import boto3
    
    client = boto3.resource('dynamodb')
    table = client.Table('minfo')
    
    def my_handler(event, context):
        item = {
            'marker': event['m'],
            'latitude': event['lat'],
            'longitude': event['lon']}
        table.put_item(Item=item)   
        return {'success' : "Success"}
    

    在模块级别创建客户端和表更高效,因为这样您就无需在每次调用 Lambda 函数时都为创建它们付出代价。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-05
      • 2016-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多