Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.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 serverless-将cloudfront POST请求修改为s3网站来源的GET请求_Amazon Web Services_Aws Lambda_Amazon Cloudfront_Aws Serverless_Aws Lambda Edge - Fatal编程技术网

Amazon web services AWS serverless-将cloudfront POST请求修改为s3网站来源的GET请求

Amazon web services AWS serverless-将cloudfront POST请求修改为s3网站来源的GET请求,amazon-web-services,aws-lambda,amazon-cloudfront,aws-serverless,aws-lambda-edge,Amazon Web Services,Aws Lambda,Amazon Cloudfront,Aws Serverless,Aws Lambda Edge,我有一个CloudFront发行版,其中源设置为s3网站端点(在s3上提供静态web应用程序) 现在,我在s3上的webapp需要一些用户信息,这些信息只能通过来自iframe的POST请求提供 我认为可以使用Lambda@edge函数在ViewerRequest stage上执行,以捕获用户信息,然后在请求源站之前修改请求以获取令牌并将其附加到源站,从而允许s3提供服务 然而,我似乎无法让它发挥作用。这是可能的吗?您不能在中更改HTTP方法Lambda@Edge触发器函数,因为它是只读的 方法

我有一个CloudFront发行版,其中源设置为s3网站端点(在s3上提供静态web应用程序)

现在,我在s3上的webapp需要一些用户信息,这些信息只能通过来自iframe的POST请求提供

我认为可以使用Lambda@edge函数在ViewerRequest stage上执行,以捕获用户信息,然后在请求源站之前修改请求以获取令牌并将其附加到源站,从而允许s3提供服务


然而,我似乎无法让它发挥作用。这是可能的吗?

您不能在中更改HTTP方法Lambda@Edge触发器函数,因为它是只读的

方法(只读)

查看器请求的HTTP方法

您可以使用AWS SDK从trigger函数中向S3发送请求,并使用检索到的对象内容发送请求

请注意,对于查看器请求,您可以生成的响应大小是40KB。对于原始请求,它是1MB

当然,您不必从S3获取内容。您可以从任何地方获取它,也可以将它嵌入函数本身

通过此设置,由于函数正在生成响应,CloudFront从不将实际的
POST
请求转发到S3。

方法(只读)
dam!我不知道我怎么会错过的:/谢谢!省去了我很多头痛