简体   繁体   English

Amazon DynamoDB和AngularJS

[英]Amazon DynamoDB and AngularJS

So, I created an AWS dynamoDB table (database) and I am ready to get that data with AngularJS. 所以,我创建了一个AWS dynamoDB表(数据库),我准备用AngularJS获取该数据。 How do I do this with AngularJS? 我如何使用AngularJS执行此操作? Do I need to setup another service with Amazon? 我是否需要在亚马逊上设置其他服务? Or can I access my database directly? 或者我可以直接访问我的数据库吗?

I was unable to find anything related to DynamoDB and AngularJS directly. 我无法直接找到与DynamoDB和AngularJS相关的任何内容。 Any help would be greatly appreciated! 任何帮助将不胜感激!

While the Mars JSON demo is excellent, here's a really simple example to get started that uses AWS SDK for JavaScript v2.1.33. 虽然Mars JSON演示非常出色,但这是一个非常简单的入门示例,它使用AWS SDK for JavaScript v2.1.33。 Switch out the keys for your own. 为自己切换钥匙。 This is a demo only, don't hardcode secret keys, may use AWS Cognito instead. 这只是一个演示,不要硬编码密钥,可以使用AWS Cognito代替。 Review the screenshots for several AWS gotcha's. 查看几个AWS陷阱的屏幕截图。

https://github.com/mayosmith/HelloDynamoDB https://github.com/mayosmith/HelloDynamoDB

/*
-----------------------------------------------------------------
AWS configure
Note: this is a simple experiement for demonstration
purposes only. Replace the keys below with your own.
Do not include the secret key in an actual production
environment, because, then, it wont be secret anymore...
-----------------------------------------------------------------
*/
AWS.config.update({accessKeyId: 'AKIAJUPWRIYYQGDB6AFA', secretAccessKey: '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'});
// Configure the region
AWS.config.region = 'us-west-2';  //us-west-2 is Oregon
//create the ddb object
var ddb = new AWS.DynamoDB();
/*
-----------------------------------------------------------------
Update the Table
-----------------------------------------------------------------
*/
//update the table with this data
var params = {
  Key: {
    name: {S: 'John Mayo-Smith'},
    city: {S: 'New York'}
  },
  AttributeUpdates: {
    food: {
      Action: 'PUT',
      Value: {S: 'chocolate'}
    }
  },
  TableName: 'sampletable',
  ReturnValues: 'ALL_NEW'
};
//update the table
update();
/*
-----------------------------------------------------------------
Get Item from the Table
-----------------------------------------------------------------
*/
//attribute to read
var readparams = {

  Key: {
    name: {S: 'John Mayo-Smith'},
    city: {S: 'New York'}
  },
  AttributesToGet: ['food'],
  TableName: 'sampletable'
};
//get the item
read();
/*
-----------------------------------------------------------------
function update()
Description: Calls updateItem which is part of the AWS Javascript
SDK.
Returns: JSON object (the object is stringifyed so we can see 
what's going on in the javascript console)
-----------------------------------------------------------------
*/
function update(){
    ddb.updateItem(params, function(err, data) {
        if (err) { return console.log(err); }
        console.log("We updated the table with this: " + JSON.stringify(data));
    });
}
/*
-----------------------------------------------------------------
function read()
Description: Calls getItem which is part of the AWS Javascript
SDK.
Returns: JSON object (the object is stringifyed so we can see 
what's going on in the javascript console)
-----------------------------------------------------------------
*/
function read(){
    ddb.getItem(readparams, function(err, data) {
        if (err) { return console.log(err); }
        console.log(": " + data);       

    console.log("John's favorite food is: "+ JSON.stringify(data.Item.food.S)); // print the item data
});
}

Yes, you can access Amazon DynamoDB directly from your AngularJS application using the AWS JavaScript SDK for the Browser. 是的,您可以使用适用于浏览器的AWS JavaScript SDK直接从AngularJS应用程序访问Amazon DynamoDB。 The same code snippet should work for NodeJS as well. 同样的代码片段也适用于NodeJS。

One thing to note is that your application needs to securely authenticate to AWS without embedding security credentials in the code. 需要注意的一点是,您的应用程序需要安全地向AWS进行身份验证,而无需在代码中嵌入安全凭据。 Amazon Cognito makes it easy and automatically takes care of authentication if you have created an identity pool and configure your application accordingly. 如果您已创建标识池并相应地配置应用程序,则Amazon Cognito可以轻松自动处理身份验证。 Here are some links that will help you get started. 以下是一些可以帮助您入门的链接。 We built a demo application with AngularJS on Amazon DynamoDB. 我们在Amazon DynamoDB上使用AngularJS构建了一个演示应用程序。 It uses Amazon Cognito for authentication and the Document SDK to store and retrieve JSON objects to and from DynamoDB directly, without needing to serialize and deserialize them in client code in the browser. 它使用Amazon Cognito进行身份验证,使用Document SDK直接在DynamoDB中存储和检索JSON对象,而无需在浏览器的客户端代码中对它们进行序列化和反序列化。

Source code: https://github.com/awslabs/aws-dynamodb-mars-json-demo 源代码: https//github.com/awslabs/aws-dynamodb-mars-json-demo

Live demo: http://dynamodb-msl-image-explorer.s3-website-us-east-1.amazonaws.com/ 现场演示: http//dynamodb-msl-image-explorer.s3-website-us-east-1.amazonaws.com/

examples of using the AWS library: https://github.com/awslabs/aws-dynamodb-mars-json-demo/blob/master/viewer/app/scripts/services/mars-photos.js 使用AWS库的示例: https//github.com/awslabs/aws-dynamodb-mars-json-demo/blob/master/viewer/app/scripts/services/mars-photos.js

examples of using the service that is using the AWS library: https://github.com/awslabs/aws-dynamodb-mars-json-demo/blob/master/viewer/app/scripts/controllers/favorites.js 使用AWS库的服务的示例: https//github.com/awslabs/aws-dynamodb-mars-json-demo/blob/master/viewer/app/scripts/controllers/favorites.js

https://github.com/awslabs/aws-dynamodb-mars-json-demo/blob/master/viewer/app/scripts/controllers/top-voted.js https://github.com/awslabs/aws-dynamodb-mars-json-demo/blob/master/viewer/app/scripts/controllers/top-voted.js

Document SDK: https://github.com/awslabs/dynamodb-document-js-sdk 文档SDK: https//github.com/awslabs/dynamodb-document-js-sdk

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM