Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.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 是否可以只使用amazon lambda构建网站_Amazon Web Services_Aws Lambda - Fatal编程技术网

Amazon web services 是否可以只使用amazon lambda构建网站

Amazon web services 是否可以只使用amazon lambda构建网站,amazon-web-services,aws-lambda,Amazon Web Services,Aws Lambda,我知道我可以在cloudfront/S3中加入一些东西,然后调用lambda函数来完成一些事情,我知道如何做到这一点,但我正试图将lambda函数直接公开为一个网站,即有一组生成html的函数,并用浏览器来访问它们 我尤其感到困惑的是安全模型。非常重要的是,这个“网站”将有某种“登录”-即不只是任何人都可以调用它-而且这与我或任何其他人的aws凭据无关,也不依赖于任何共享机密 仅使用lambda+api网关就可以做到这一点吗?或者lambda+cloudfront?实际上这取决于用例 您可以使用

我知道我可以在cloudfront/S3中加入一些东西,然后调用lambda函数来完成一些事情,我知道如何做到这一点,但我正试图将lambda函数直接公开为一个网站,即有一组生成html的函数,并用浏览器来访问它们

我尤其感到困惑的是安全模型。非常重要的是,这个“网站”将有某种“登录”-即不只是任何人都可以调用它-而且这与我或任何其他人的aws凭据无关,也不依赖于任何共享机密


仅使用lambda+api网关就可以做到这一点吗?或者lambda+cloudfront?

实际上这取决于用例

您可以使用以下AWS服务构建完整的动态web应用程序:

  • S3用于静态内容。例如:反应/角度应用程序和其他静态应用程序
  • CloudFront作为CDN和代理
  • API网关为后端构建API
  • Lambda作为API资源端点的计算函数
说到安全性,您可以使用AWS Cognito和UserPool。您可以将配置为对用户进行身份验证和授权。如果您愿意,API网关还为您提供了编写自定义授权程序的功能

使用上述服务开发应用程序符合无服务器应用程序的条件

您可以使用以下链接阅读有关无服务器的更多信息


实际上,这取决于用例

您可以使用以下AWS服务构建完整的动态web应用程序:

  • S3用于静态内容。例如:反应/角度应用程序和其他静态应用程序
  • CloudFront作为CDN和代理
  • API网关为后端构建API
  • Lambda作为API资源端点的计算函数
说到安全性,您可以使用AWS Cognito和UserPool。您可以将配置为对用户进行身份验证和授权。如果您愿意,API网关还为您提供了编写自定义授权程序的功能

使用上述服务开发应用程序符合无服务器应用程序的条件

您可以使用以下链接阅读有关无服务器的更多信息


对于使用以下服务的简单应用程序,即使没有Lambda,您也可以构建具有登录支持的web应用程序

  • AWS S3(存储HTML、JS、CSS等静态资产)
  • AWS DynamoDB(数据存储)
  • AWS Cognito(用于登录)
您甚至可以提供仅允许用户访问特定行的dynamodb。主要限制之一是为多租户应用程序构建安全模型,其中多个用户属于一个组,需要组级授权。另一个限制是将DNS记录直接添加到S3 bucket,在S3 bucket中,DNS记录将被限制为具有S3 bucket名称的域。此外,由于飞行前的请求,CORs将降低应用程序性能。为了解决上述限制以及更多问题,您还可以使用以下服务

  • AWS CloudFront(通过缓存消除DNS限制、CORs和性能改进、Web应用程序防火墙集成以提高安全性等)
  • AWS Lambda(提供多租户自定义授权等)
  • AWS API网关(节流、集成等)
添加上述服务还提供了使用不同数据存储机制和使用其他AWS服务的灵活性

P> >总之,您可以使用以下服务集作为AWS中Web应用程序的基础。
  • AWS S3
  • AWS API网关
  • AWS Lambda
  • AWS云锋
  • AWS Cognito

对于使用以下服务的简单应用程序,即使没有Lambda,您也可以构建具有登录支持的web应用程序

  • AWS S3(存储HTML、JS、CSS等静态资产)
  • AWS DynamoDB(数据存储)
  • AWS Cognito(用于登录)
您甚至可以提供仅允许用户访问特定行的dynamodb。主要限制之一是为多租户应用程序构建安全模型,其中多个用户属于一个组,需要组级授权。另一个限制是将DNS记录直接添加到S3 bucket,在S3 bucket中,DNS记录将被限制为具有S3 bucket名称的域。此外,由于飞行前的请求,CORs将降低应用程序性能。为了解决上述限制以及更多问题,您还可以使用以下服务

  • AWS CloudFront(通过缓存消除DNS限制、CORs和性能改进、Web应用程序防火墙集成以提高安全性等)
  • AWS Lambda(提供多租户自定义授权等)
  • AWS API网关(节流、集成等)
添加上述服务还提供了使用不同数据存储机制和使用其他AWS服务的灵活性

P> >总之,您可以使用以下服务集作为AWS中Web应用程序的基础。
  • AWS S3
  • AWS API网关
  • AWS Lambda
  • AWS云锋
  • AWS Cognito

    • 我不确定其他答案是否真的回答了你的问题。他们似乎建议您使用Angular/React/什么构建一个单页应用程序,但我认为您在问是否可以直接从API Gateway/Lambda提供HTML。答案是肯定的。要登录用户,它将如下所示:

    • 用户访问页面-API网关调用登录Lambda以呈现登录html
    • 用户填写表单,提交form method=“POST”-API网关将表单数据映射为JSON并将其传递给授权人Lambda,如果授权,则允许API网关调用受保护的内容Lambda以获取该页面的html
    • <