Amazon web services Amazon Web服务-从前端客户端与RDS数据库通信

Amazon web services Amazon Web服务-从前端客户端与RDS数据库通信,amazon-web-services,web,amazon-s3,amazon-rds,Amazon Web Services,Web,Amazon S3,Amazon Rds,为了简单起见,我使用AmazonS3服务托管了一个单页静态网站,不过我想包括一个允许用户输入电子邮件地址并提交的字段。然后应将此电子邮件添加到我的数据库中。我正在使用来自Amazon RDS服务的MySQL数据库。此外,由于这是一个静态网页,我没有后端运行 我想知道在体系结构上,向数据库写入数据的最佳方式是什么?我应该在前端添加javascript以将电子邮件写入数据库吗?这会向公众公开数据库访问密钥吗?我应该改用Amazon Lambda来写数据库吗?据我所知,javascript无法处理您对

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


我想知道在体系结构上,向数据库写入数据的最佳方式是什么?我应该在前端添加javascript以将电子邮件写入数据库吗?这会向公众公开数据库访问密钥吗?我应该改用Amazon Lambda来写数据库吗?

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

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

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

Amazon在浏览器中提供了针对Javascript的SDK(),它有一些功能可以使用,例如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代码读取,这样它就知道去哪里,并且代码可以访问数据库了吗?你可以检查-显然硬编码的凭据不是正确的方法,你可以使用cognito