Can we use dynamodb without nodejs ?

0

Hello guys, how are you I am a beginner in AWS and I wanna know can I use plain JavaScript to store values and manipulate them using DynamoDB.

const { DynamoDBClient } = require('@aws-sdk/client-dynamodb');
const { DynamoDBDocument } = require('@aws-sdk/lib-dynamodb');
// Create service client module using ES6 syntax.
//import { DynamoDBClient } from "@aws-sdk/client-dynamodb";
// Set the AWS Region.
const REGION = "ap-south-1"; //e.g. "us-east-1"
// Create an Amazon DynamoDB service client object.
const ddbClient = new DynamoDBClient({ region: REGION });


// Import required AWS SDK clients and commands for Node.js
import { CreateTableCommand } from "@aws-sdk/client-dynamodb";


// Set the parameters
const params3 = {
    AttributeDefinitions: [
      {
        AttributeName: "Season", //ATTRIBUTE_NAME_1
        AttributeType: "N", //ATTRIBUTE_TYPE
      },
      {
        AttributeName: "Episode", //ATTRIBUTE_NAME_2
        AttributeType: "N", //ATTRIBUTE_TYPE
      },
    ],
    KeySchema: [
      {
        AttributeName: "Season", //ATTRIBUTE_NAME_1
        KeyType: "HASH",
      },
      {
        AttributeName: "Episode", //ATTRIBUTE_NAME_2
        KeyType: "RANGE",
      },
    ],
    ProvisionedThroughput: {
      ReadCapacityUnits: 1,
      WriteCapacityUnits: 1,
    },
    TableName: "TEST_TABLE", //TABLE_NAME
    StreamSpecification: {
      StreamEnabled: false,
    },
  };
  
const run = async () => {
    try {
      const data = await ddbClient.send(new CreateTableCommand(params3));
      console.log("Table Created", data);
      return data;
    } catch (err) {
      console.log("Error", err);
    }
  };
  run();

and I am facing this error- Enter image description here

above is a code and output image in which I am facing credentials error. Please someone guide me where I am doing wrong. Thanks for your time and guidance.

asked 2 years ago386 views
1 Answer
2
Accepted Answer

You seem to be missing credentials. You haven't mentioned where you are running your application from, if its from your local machine you can set up the credentials using AWS Configure. This will allow your code pick up credentials and interact with DynamoDB, so long as the credentials belong to a user who has DynamoDB access. More on Identity and Access Management here.

If you're using an AWS service to host the code such as Lambda, then ensure you attach an IAM execution role to the service so it has permissions. Here is an example for Lambda but the same goes for EC2 or other services.

profile pictureAWS
EXPERT
answered 2 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions