AWS 将 lambda 函数值插入 DynamoDB

问题描述 投票:0回答:1

通过 lambda 函数,我调用 openrest api,将此数据存储在 dynamodb 中。通过使用 AWS,在 IAM 中使用 dynamodb fullaccess 创建一个新角色。在 Lambda 中,我创建了一个函数,其中来自 api 的数据正确输入,因为在测试该函数时它也能正确显示。现在无法将数据获取到dynamodb表中。不知道为什么它不起作用? 这是代码:

import json
import boto3
import requests
from datetime import datetime

# Verbindingsinstellingen voor DynamoDB
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('WindPrijzenElia')

def lambda_handler(event, context):
    URL = "https://opendata.elia.be/api/v2/catalog/datasets/ods077/records?order_by=datetime%20desc&limit=1&offset=0&timezone=Europe%2FParis"

    Marge_trevion = 1.5
    GVO = 5
    GSC_WT = 0
    GSC_AK = 93
    Onderhoud_vestas = 10

    r = requests.get(url=URL)
    data = r.json()
    Onbalans_prijs = data['records'][0]['record']['fields']['positiveimbalanceprice']

    Som_WT = GSC_WT + GVO - Onderhoud_vestas - Marge_trevion + Onbalans_prijs
    Reduceren_WT = Som_WT < -30

    Som_AK = GSC_AK + GVO - Onderhoud_vestas - Marge_trevion + Onbalans_prijs
    Reduceren_AK = Som_AK < -30

    print(datetime.now(), "Elia timestamp =", data['records'][0]['record']['timestamp'], "",
          data['records'][0]['record']['id'], " ", data['records'][0]['record']['fields']['datetime'], " ",
          data['records'][0]['record']['fields']['positiveimbalanceprice'], Som_WT, Reduceren_WT)
    print(datetime.now(), "Elia timestamp =", data['records'][0]['record']['timestamp'], "",
          data['records'][0]['record']['id'], " ", data['records'][0]['record']['fields']['datetime'], " ",
          data['records'][0]['record']['fields']['positiveimbalanceprice'], Som_WT, Reduceren_WT)

    return {
        'statusCode': 200,
        'body': json.dumps("success")
    }
amazon-web-services aws-lambda amazon-dynamodb amazon-iam
1个回答
0
投票

数据不会神奇地保存到 DynamoDB 中。您必须调用

put_item
API 并将您希望保存的数据作为参数传递给我们。

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb/client/put_item.html

© www.soinside.com 2019 - 2024. All rights reserved.