Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何在AWS S3托管的静态网页上显示来自DynamoDB的数据_Amazon Web Services_Amazon S3_Amazon Dynamodb - Fatal编程技术网

Amazon web services 如何在AWS S3托管的静态网页上显示来自DynamoDB的数据

Amazon web services 如何在AWS S3托管的静态网页上显示来自DynamoDB的数据,amazon-web-services,amazon-s3,amazon-dynamodb,Amazon Web Services,Amazon S3,Amazon Dynamodb,我有一个使用AWS IoT将数据发送到DynamoDB表的系统。这是简单的天气数据,存储时间、温度、湿度和压力。到目前为止,这方面的工作进展顺利。 我想在S3上托管的网页上显示此表中的数据。在其最简单的形式中,这将只显示最新的数据行。我原以为这将是一个简单的客户端javascript查询数据库的例子,但从Amazon上看,通过API网关调用Lambda函数并使用IAM进行验证会变得相当复杂。 有没有更简单的方法?数据应该是公开可读的,不可写的,所以我认为应该比我目前读到的更容易。请看一下。它可以

我有一个使用AWS IoT将数据发送到DynamoDB表的系统。这是简单的天气数据,存储时间、温度、湿度和压力。到目前为止,这方面的工作进展顺利。 我想在S3上托管的网页上显示此表中的数据。在其最简单的形式中,这将只显示最新的数据行。我原以为这将是一个简单的客户端javascript查询数据库的例子,但从Amazon上看,通过API网关调用Lambda函数并使用IAM进行验证会变得相当复杂。 有没有更简单的方法?数据应该是公开可读的,不可写的,所以我认为应该比我目前读到的更容易。

请看一下。它可以帮助您使用API网关、Lambda函数和只需几行代码即可访问DynamoDB表来创建简单的端到端服务。它有多种编程语言

总而言之:无论何时,只要您想要提供动态内容,您都需要某种应用程序来处理它。一个由AWS Lambda函数支持的API网关并不比运行一个web服务器更复杂,它具有所有无差别的繁重工作,如网络配置、防火墙设置、操作系统补丁和维护。在任何情况下,都需要正确处理身份和访问控制。

存在一个问题。它允许web页面上的JavaScript直接调用DynamoDB,而无需通过API网关进行API调用,从而触发Lambda函数,该函数本身代表您调用DynamoDB

这里主要考虑的是如何验证web浏览器客户端。如果没有AWS凭据,它无法进行DynamoDB API调用。我假设您没有可以将AWS凭据返回到客户端的服务器端组件

您可以在页面本身中嵌入只读、最低权限的AWS凭据-这肯定不是最佳做法,但它很简单,在某些情况下可能是可以接受的。其他选项包括要求网站用户通过web Identity Federation进行身份验证,这将动态生成一组可用的、有时间限制的AWS凭据。另一个更复杂的选项是AWS Amplify,它支持经过身份验证和未经身份验证的客户端。这通常比在网页中硬编码(只读)AWS凭据更可取,但设置起来有点复杂

还有一篇博文:


在所有这些场景中,页面本身将直接对DynamoDB进行API调用,并且您应该确保与凭据关联的IAM角色受到严格限制(仅限相关的DynamoDB表和必要的查询/获取权限)。

如果您真的只想显示最新的行,而且你更喜欢让你的网页尽可能的静态,我会考虑把最新的一个DyDoDB写到一个简单的JSON文件中,使用你想要的任何后台程序,然后,您的前端应用程序就可以使用该文件,而不必担心IAM凭据甚至AWS JS SDK—使其尽可能简单和轻量级

也不需要反复点击dynamodb来为每个页面加载提取相同的数据——从长远来看,这也会为您节省一些钱