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.

demandé il y a 2 ans391 vues
1 réponse
2
Réponse acceptée

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
répondu il y a 2 ans

Vous n'êtes pas connecté. Se connecter pour publier une réponse.

Une bonne réponse répond clairement à la question, contient des commentaires constructifs et encourage le développement professionnel de la personne qui pose la question.

Instructions pour répondre aux questions