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 S3静态网站托管:是否可以在重定向规则中向目标URL添加多个查询字符串参数?_Amazon Web Services_Amazon S3_Aws Lambda - Fatal编程技术网

Amazon web services S3静态网站托管:是否可以在重定向规则中向目标URL添加多个查询字符串参数?

Amazon web services S3静态网站托管:是否可以在重定向规则中向目标URL添加多个查询字符串参数?,amazon-web-services,amazon-s3,aws-lambda,Amazon Web Services,Amazon S3,Aws Lambda,我目前在S3上托管一个静态网站,它使用重定向规则将请求重新路由到lambda函数 问题是我有两个bucket,它们都充当静态网站(沙盒vs生产),我需要能够将它们指向相同的lambda函数,但在函数运行时能够将它们区分开来。无论它是一个头、一个GET参数、字符串操作,还是我可以用来确定请求来自哪个bucket的任何东西 有人知道在lambda函数中如何识别请求来自一个存储桶而不是另一个存储桶吗?这是我正在使用的当前重定向规则: <RoutingRules> <Routing

我目前在S3上托管一个静态网站,它使用重定向规则将请求重新路由到lambda函数

问题是我有两个bucket,它们都充当静态网站(沙盒vs生产),我需要能够将它们指向相同的lambda函数,但在函数运行时能够将它们区分开来。无论它是一个头、一个
GET
参数、字符串操作,还是我可以用来确定请求来自哪个bucket的任何东西

有人知道在lambda函数中如何识别请求来自一个存储桶而不是另一个存储桶吗?这是我正在使用的当前重定向规则:

<RoutingRules>
  <RoutingRule>
    <Condition>
      <KeyPrefixEquals/>
     <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
    </Condition>
    <Redirect>
      <Protocol>https</Protocol>
      <HostName>removed.execute-api.us-east-2.amazonaws.com</HostName>
      <ReplaceKeyPrefixWith>prod/func?key=</ReplaceKeyPrefixWith>
      <HttpRedirectCode>307</HttpRedirectCode>
    </Redirect>
  </RoutingRule>
</RoutingRules>

404
https
已删除。execute-api.us-east-2.amazonaws.com
产品/功能键=
307
据我所知,我无法从该路由规则集中设置和标题或
获取
参数,因为规则验证失败,目前我唯一的选择是复制lambda函数,我真的不想这样做,因为它感觉很冗长

我还对Lambda函数中的
事件
上下文
参数执行了
JSON.stringify()
,似乎看不到任何项目来帮助我唯一地识别原始存储桶


感谢您的帮助。

如果您想添加查询字符串(“GET”)参数,您必须记住这是一个XML文档,需要转义
&
→ <代码>&。使用这种方法,S3仍将在重定向中正确呈现查询字符串

无效:

<ReplaceKeyPrefixWith>prod/func?foo=bar&buzz=fizz&key=</ReplaceKeyPrefixWith>
prod/func?foo=bar&buzz=fizz&key=
有效期:

<ReplaceKeyPrefixWith>prod/func?foo=bar&amp;buzz=fizz&amp;key=</ReplaceKeyPrefixWith>
prod/func?foo=bar&;嗡嗡声=嘶嘶声&;钥匙=