DynamoDB - Flow Nodes

Good Afternoon!

Just a question regarding the usage of the AWS Cloud Canvas (DynamoDB) Nodes. In the Node, you typically see:

  • TableName:
  • TableKeyName:
  • Key:
  • KeyValue:
  • Attribute:
  • AttributeComparisonValue:
    Some of these seem overlapping, and I cannot seem to get a response from our DynamoDB Table which has the uploaded information. Is the TableKeyName our partition key? If so, is the Key a different name or field?

Please let me know and thank you for all of the help!

To further clarify, this is the error messages that I am getting:

[Error] (Cloud Canvas) Flow graph AWS:Primitive:DynamoDB:DynamoDBScan node with inputs Scan=0, TableName=Players, Attribute=Name, AttributeComparison=EQUALS, AttributeComparisonValue=Austin, AttributeComparisonValueType=string failed with error: 2 validation errors detected: Value '' at 'tableName' failed to satisfy constraint: Member must satisfy regular expression pattern: [a-zA-Z0-9_.-]+; Value '' at 'tableName' failed to satisfy constraint: Member must have length greater than or equal to 3

Hello @AHandle_APS,

TableName refers to the DynamoDB Table Name that you want to communicate with while TableKeyName is the hash key for the table entry you want to modify.

I am curious about your use case regarding accessing DynamoDB from the client. FlowGraph is on track to deprecation and Script Canvas is going to be the replacement going forward however currently we don’t have Script Canvas nodes that would directly interact with DynamoDB but instead we recommend our customers to use backend services (such as a Lambda function) to interact directly with DynamoDB for security, scalability, and cost-efficiency reasons.

Let us know if we can help.


Thank you for your reply!

I’m attempting to check a value in a DynamoDB table in comparison with a value from a UI InputText element. I’ll need to find a way to:

  1. (Lumberyard): Player inputs into textbox

  2. (Lumberyard): Invoke Lambda on Player hitting ‘Submit’ button

  3. (Lambda): Check DynamoDB table for equal string value (“Input1”)

  4. (Lambda): Get value from same DynamoDB Table for “token” field

  5. (Lambda/Lumberyard): Send “token” field value to Lumberyard

  6. (Lambda): Use “token” field to determine which S3 folder (with several specific files) to download

  7. (Lambda): Send URL(presigned?) to Lumberyard for download

  8. (Lumberyard): Download files into predetermined locations
    I’ve currently gotten our backend to retrieve the data for the DynamoDB table and fill it out without a Lambda Function, however, I also need to figure out how to get Lambda to package the folders accordingly if I must preferably use the AWS backend.

  9. (Lambda): Invoked

  10. (Lambda): Checks DynamoDB Table for “token” field value

  11. (Lambda): Gathers/downloads all files necessary as determined by “token” field value

  12. (Lambda): Prepares download for Lumberyard Client (which is later activated, like in above case)

  13. (Lumberyard): Upon receiving last file, invokes lambda

  14. (Lambda): Use’s “token” field value to determine which S3 Folder to delete

  15. (Lambda): Deletes corresponding S3 Folder

  16. (Lambda): Deletes DynamoDB Table Key corresponding with “token” value.
    Thank you for all of your help. Please let me know if you’re able to help me out further. I’m still trying to learn Lambda properly with AWS. Coming from a veteran CryEngine guy to Lumberyard is amazing, and Script Canvas looks like it will be fantastic, but I always could knock out some extensive flowgraphs. This is new-er territory. Haha.