【问题标题】:How to whitelist AWS Lambda function for Google API如何将 Google API 的 AWS Lambda 函数列入白名单
【发布时间】:2018-07-07 00:59:31
【问题描述】:

我正在构建一个 AWS Lambda 函数,该函数使用 Node.js 从 Google 日历 API 中提取信息。然后,Node 应用程序向第三方应用程序发送一个 html 响应。我基本上关注this guide from google,除了我将html发送到其他地方进行渲染。我一直遇到一个错误,谷歌告诉我我没有将来自 Lambda 的 javascript 来源列入白名单。这是错误文本:

{error: "idpiframe_initialization_failed", details: ""Not a valid origin for the client: https://<Lambda URL>.execute-api.us-west-2.amazonaws.com has not been whitelisted for client ID <My_Google_API_Client_Id>.apps.googleusercontent.com. Please go to https://console.developers.google.com/ and whitelist this origin for your project's client ID."}

我已进入 Google API 开发者控制台并将该 URL 列入白名单,但我仍然收到该错误。 Here's a screenshot.

我也尝试将“us-west-2.amazonaws.com”列入白名单,但没有成功。谢谢!!

【问题讨论】:

  • "将此来源列入白名单" -- 此确切来源,https://x-example.execute-api.us-west-2.amazonaws.com.
  • 这似乎奏效了!

标签: node.js amazon-web-services google-api aws-lambda google-calendar-api


【解决方案1】:

您需要将 Lambda 的 IP 地址列入白名单,不能根据域名列入白名单。您可以在此处查看当前 IP 地址列表:https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html

您注意到您的请求来自 us-west-2,因此您只能通过查找与该区域匹配的条目来将该区域的 IP 列入白名单。我数了 122,所以这是一项相当大的工作!

否则,您可以考虑在 VPC 中设置 NAT 并使用针对该 IP 的 IP 将该唯一 IP 列入白名单?

【讨论】:

  • 带有 NAT 网关的 VPC 将是这里的正确解决方案。
  • @JorgRoper 我相信您的回答偏离了轨道。 Origin 不代表 IP 地址。 Origin 是一个 HTTP 请求标头,类似于 Referer,它传达发出(通常)跨域请求的页面的来源(协议 + 主机名)。我有理由相信 Lambda 没有提出这个请求。浏览器正在发出此请求。
  • 我还没有尝试过任何东西,但我想我可能不小心没有提供所有必要的信息。 Lambda 向另一个应用程序发送一个 html 响应,当 html 在该页面上呈现时请求就来了。所以听起来我必须将第三方应用程序的 IP 列入白名单,但如果是这种情况,为什么它会在错误中显示 lambda url?我已更新原始问题以添加此新信息。
猜你喜欢
  • 2019-08-19
  • 2020-03-31
  • 1970-01-01
  • 1970-01-01
  • 2019-11-05
  • 2013-10-23
  • 2023-03-28
  • 2018-04-21
  • 2015-05-25
相关资源
最近更新 更多