2016-05-20 4 views
2

Ich habe mit einigen Problemen Serverless Framework und DynamoDB zu tun.Serverless Framework mit DynamoDB: Lambda-Funktion funktioniert, aber Daten wurden nicht in DynamoDB gespeichert

Nach meiner Lambda-Funktion ausgeführt, die context.succeed(result) würde das Ergebnis, zurückgeben aber nichts in die DynamoDB schreiben.

Hier ist der Link demo repo.

habe ich gelesen, diese question

Und ich hinzugefügt, um die Ressource zu dem s-resources-cf.json, dann serverless resources deploy wieder. Nach dem Senden der Anfrage, noch nichts mit DynamoDB.

Hier ist das, was ich getan habe:

  • Erstellen Sie eine Tabelle: posts mit Primärschlüssel in bestimmten Region

  • AdministratorAccess meiner IAM Rolle Attach (Ich weiß, es ist schlecht, das zu tun.

    )
  • hinzufügen {"Effect": "Allow", "Action": ["*"], "Resource":"arn:aws:dynamodb:${region}:*:table/*"} auf die s-resources-cf.json

Was kann ich noch falsch verstehen?

Antwort

2

Ihr Demo-Repo scheint nicht das AWS SDK & zu enthalten, das die Region wie in der Getting Started guide angegeben festlegt. D.h .:

var AWS = require("aws-sdk"); 
var DOC = require("dynamodb-doc"); 

AWS.config.update({region: "us-west-1"}); 
var docClient = new DOC.DynamoDB(); 

... 

Beachten Sie, dass dynamo-doc vor fast einem Jahr aufgegeben. Vielleicht möchten Sie stattdessen die DynamoDB DocumentClient ausprobieren. Diese aktualisierte API hat eine wesentlich klarere Fehlerbehandlungssemantik, die wahrscheinlich helfen wird, auf das Problem hinzuweisen.

+0

Danke! Aber ich stelle fest, dass es ein Problem in meinem 'handler.js' gibt – Denny

+0

Weil ich das' context.succeed' inline ausgeführt habe. – Denny

+0

@Denny, was sind die Probleme, die Sie mit DynamoDB DocumentClient haben? –