Amazon web services S3静态网站托管:是否可以在重定向规则中向目标URL添加多个查询字符串参数?
我目前在S3上托管一个静态网站,它使用重定向规则将请求重新路由到lambda函数 问题是我有两个bucket,它们都充当静态网站(沙盒vs生产),我需要能够将它们指向相同的lambda函数,但在函数运行时能够将它们区分开来。无论它是一个头、一个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
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&buzz=fizz&key=</ReplaceKeyPrefixWith>
prod/func?foo=bar&;嗡嗡声=嘶嘶声&;钥匙=