【问题标题】:How to access host in lambda behind both API gateway and cloudfront?如何在 API 网关和云端访问 lambda 中的主机?
【发布时间】:2022-05-05 15:05:27
【问题描述】:

我有一个由 API 网关执行的 lambda 函数。我有指向 API 网关端点的云端流量。

如何在我的 lambda 函数中访问客户端所在的主机/域?

我可以将 Host 标头移动到 X-Forwarded-Host 吗?

例如

abc.com(云端)-> API 网关-> lambda(主机:abc.com)

【问题讨论】:

  • “我的 lambda 函数中的客户端主机”是什么意思?困惑。
  • 完全打错了。我的意思是客户端所在的主机域。

标签: aws-lambda aws-api-gateway amazon-cloudfront


【解决方案1】:

要通过 Cloudfront 和 API 网关传播 Host 标头,请执行以下步骤:

将 Cloudfront 配置为转发 Host 标头

Step-by-step guide

关键点:

选择“行为”选项卡,然后选择要将 Host 标头转发到的路径。

选择编辑。

在缓存键和源请求下,确认已选择旧缓存设置。如果未选中,则按照上一节中的步骤创建缓存策略。如果选择旧缓存设置,请完成以下操作: 对于标头,选择包括以下标头。 从添加标题下拉列表中,选择主机。

配置 API 网关请求以中继 Host 标头

详细文档here

关键点:

编辑您的 API Gateway 资源,并且对于您需要 Host 标头的每个方法,通过在 HTTP 请求标头 列表中添加 Host 标头来编辑方法请求。


您还可以使用 Cloudfront 函数将 Host 标头移动到 X-Forwarded-Host,但您仍需要按照上述步骤传播 X-Forwarded-Host 标头。您可以从this sample function 开始尝试。

【讨论】:

    猜你喜欢
    • 2019-11-03
    • 2018-10-12
    • 2019-07-20
    • 2021-07-06
    • 2012-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多