AWS Lambda 操作 DynamoDB 【CRUD】

2022-12-27  本文已影响0人  Hamiltonian

AWS Lambda 操作 DynamoDB 【CRUD】

按照 AWS官方文档走不通,网上教程良莠不齐。特此记录下来供大家参考

A.析构请求参数

// 调试参数
{
  "username": "value1",
  "password": "value2"
}
exports.handler = async (event, context, callback) => {
    
    //析构函数
     const { username, password } = event
      
    const response = {
        statusCode: 200,
        headers: {
            'Content-Type': 'text/html',
        },
        body: {
            'key':username
        },
    };
    return callback(null,response);
};

B1. 如何解决AccessDeniedException【is not authorized to perform】

{
  "errorType": "AccessDeniedException",
  "errorMessage": "User: arn:aws:sts::224706089330:assumed-role/myfunc2-role-c74c5cwn/myfunc2 is not authorized to perform: dynamodb:PutItem on resource: arn:aws:dynamodb:eu-north-1:224706089330:table/newkey_media because no identity-based policy allows the dynamodb:PutItem action",
}
解决方法:
A.在Lambda函数页面,选择Configuration=>Permissions=>Execution role
B.Policy name确保有以下两项:AWSLambdaBasicExecutionRole、AmazonDynamoDBFullAccess

B.增

// Load the AWS SDK for Node.js
var AWS = require('aws-sdk');
// Set the region 
AWS.config.update({region: 'eu-north-1'});

// Create the DynamoDB service object
var ddb = new AWS.DynamoDB({apiVersion: '2012-08-10'});

var params = {
  TableName: 'newkey_media',
  Item: {
    'new_entity' : {S: '000099'},
    'list' : {S: 'Richard Roe'}
  }
};


// // Create DynamoDB document client
// var docClient = new AWS.DynamoDB.DocumentClient({apiVersion: '2012-08-10'});

exports.handler = async (event, context, callback) => {
    
// Call DynamoDB to add the item to the table
  await ddb.putItem(params, function(err, data) {
  if (err) {
    console.log("Error", err);
    callback(err);
  } else {
    console.log("Success", data);
    callback(null,data);
  }
}).promise();

};

C.删

// Load the AWS SDK for Node.js
var AWS = require('aws-sdk');
// Set the region 
AWS.config.update({region: 'eu-north-1'});

// Create the DynamoDB service object
var ddb = new AWS.DynamoDB({apiVersion: '2012-08-10'});

var params = {
  TableName: 'newkey_media',
 Key: {
    'new_entity': {S: '001'}
  }
};


// // Create DynamoDB document client
// var docClient = new AWS.DynamoDB.DocumentClient({apiVersion: '2012-08-10'});

exports.handler = async (event, context, callback) => {
    
// Call DynamoDB to add the item to the table
  await ddb.deleteItem(params, function(err, data) {
  if (err) {
    console.log("Error", err);
    callback(err);
  } else {
    console.log("Success", data);
    callback(null,data);
  }
}).promise();
};

D.查

// Load the AWS SDK for Node.js
var AWS = require('aws-sdk');
// Set the region 
AWS.config.update({region: 'eu-north-1'});

// Create the DynamoDB service object
var ddb = new AWS.DynamoDB({apiVersion: '2012-08-10'});

var params = {
  TableName: 'newkey_media'
};


// // Create DynamoDB document client
// var docClient = new AWS.DynamoDB.DocumentClient({apiVersion: '2012-08-10'});

exports.handler = async (event, context, callback) => {
    
// Call DynamoDB to add the item to the table
  await ddb.scan(params, function(err, data) {
  if (err) {
    console.log("Error", err);
    callback(err);
  } else {
    console.log("Success", data);
    callback(null,data);
  }
}).promise();

};

E.改

// Load the AWS SDK for Node.js
var AWS = require('aws-sdk');
// Set the region 
AWS.config.update({region: 'eu-north-1'});

// Create the DynamoDB service object
var ddb = new AWS.DynamoDB({apiVersion: '2012-08-10'});

var params = {
  TableName: 'newkey_media',
  Item: {
    'new_entity' : {S: '000099'},
    'list' : {S: 'Renkkkkkkkk'}
  }
};


// // Create DynamoDB document client
// var docClient = new AWS.DynamoDB.DocumentClient({apiVersion: '2012-08-10'});

exports.handler = async (event, context, callback) => {
    
// Call DynamoDB to add the item to the table
  await ddb.putItem(params, function(err, data) {
  if (err) {
    console.log("Error", err);
    callback(err);
  } else {
    console.log("Success", data);
    callback(null,data);
  }
}).promise();

};

上一篇下一篇

猜你喜欢

热点阅读