通过 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")
}
数据不会神奇地保存到 DynamoDB 中。您必须调用
put_item
API 并将您希望保存的数据作为参数传递给我们。