亚马逊网络服务-从前端客户端与RDS数据库通信



为了简单起见,我正在使用AmazonS3服务托管一个单页静态网站,但我希望包含一个允许用户输入电子邮件地址并提交的字段。然后应该将此电子邮件添加到我的数据库中。我使用的是来自亚马逊RDS服务的MySQL数据库。此外,由于这是一个静态网页,我没有后台运行。

我想知道在架构上对数据库进行写操作的最佳方式是什么?我应该在前端添加javascript来将电子邮件写入数据库吗?这会向公众公开数据库访问密钥吗?我应该使用AmazonLambda来写入数据库吗?

TLDR这是可能的,亚马逊提供了一个Javascript SDK在客户端上运行,以连接到后端服务。虽然这是可能的,但我仍然建议使用lambda来完成这项工作

亚马逊在浏览器中提供Javascript的SDK(doc),它有一些很好的例子可以使用DynamoDB

以下示例将一个项目放入DynamoDB表中,然后读取使用散列密钥将其返回。

var table = new AWS.DynamoDB({params: {TableName: 'MY_TABLE'}});
var key = 'UNIQUE_KEY_ID';
// Write the item to the table
var itemParams = {Item: {id: {S: key}, data: {S: 'data'}}};
table.putItem(itemParams, function() {
  // Read the item from the table
  table.getItem({Key: {id: {S: key}}}, function(err, data) {
    console.log(data.Item); // print the item data
  });
});

您可以从任何站点(甚至是运行在S3上的静态站点)使用这些Javascript方法,只需将库添加到页面即可

<script src="https://sdk.amazonaws.com/js/aws-sdk-2.2.28.min.js"></script>

据我所知,javascript无法处理您向服务器端的请求。

您将需要服务器端组件来处理请求。

最新更新