【问题标题】:AWS Lambda and Google Drive Push Notification integration possible?AWS Lambda 和 Google Drive Push Notification 集成可能吗?
【发布时间】:2016-09-27 21:03:51
【问题描述】:

如果通过 api 网关在 aws lambda 上进行编码,是否可以接收 google drive 推送通知? 谷歌驱动需要验证 webhook 地址,是否可以验证 api 网关端点?

以下是验证端点的可能方法:
1)通过/file上传文件并测试,其余如下:

好吧,这是 google 如何进行元标记验证的图像: 为了获得所需的验证元标记,我需要先输入我要验证的 url/endpoint。所以下图显示了我创建的端点:

然后在网站管理员这里我正在验证 url:但验证失败。

这是我添加的python代码

请在此处指导我如何使验证成功!

【问题讨论】:

  • 嘿 Akshita,你能帮帮我吗,我怎样才能实现这个场景?我希望我的 lambda 函数能注意到 Google 驱动器上的变化!另一件事,我面临的一个问题是,要从 G-drive 读取文件,我可以从本地机器上执行,但无法从 lambda 函数读取它,实际错误与 redirect_uri 相关,在 Google 控制台的 OAuth 设置中设置的 redirect_uri 应该是什么?

标签: push-notification google-drive-api aws-lambda aws-api-gateway


【解决方案1】:

@Atihska,看来你已经设置了这个 API:

https://x8f3******.execute-api.us-east-1.amazonaws.com/prod/google-endpointverification

据我了解,Google Drive 的 HTML 标签验证方法会尝试验证 主页 中的元数据。根据谷歌,这里的主页是:

https://x8f3******.execute-api.us-east-1.amazonaws.com/

但上面的 URL 不起作用,因为它没有舞台名称(如“prod”)。

正确的做法是使用自定义域名。因此,您需要购买 foodomain.com 之类的域名,并在 API Gateway 中使用 custom domain 名称选项来指向您的 API。这样,您可以使 foodomain.com (主页)指向 https://x8f3******.execute-api.us-east-1.amazonaws.com/ prod/google-endpointverification

此外,您可以简单地使用 Mock integration 代替 Lambda,因为这只是静态内容。

【讨论】:

  • 所以我使用了自定义域和设置。此自定义子域:samplesubdomain.xyz.com 映射到 api 网关端点:x8f3******.execute-api.us-east-1.amazonaws.com/test/google-endpointverification。现在,在此之后,我是否必须将云前端 url 与自定义域映射?当我通过添加证书详细信息从 api 网关创建它时,它带我到一个指定 cloudfront url 的页面,并要求我使用我的 DNS 提供商创建一个别名资源记录,以将 samplesubdomain.xyz.com 映射到 d16a0***.cloudfront 。网。但我已将 samplesubdomain.xyz.com 映射到 api 网关端点。
  • 请看下面我的回答。这不是一个答案,而是想插入一张图片,因为我无法在评论中插入,并且原始问题充满了它们。我已将 API 映射添加到自定义域,但现在我收到“缺少身份验证令牌”
【解决方案2】:

我终于搞定了。

正如@Balaji 和@Jack Kohn 所提到的,我必须使用自定义域。我跟着这个教程http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html

而映射正文模板的最后一步就到这里了:

很抱歉剪了这么多,但不得不隐藏提供的值。

【讨论】:

    【解决方案3】:

    我不确定注册过程如何验证 webhook 地址,但肯定可以在 API Gateway 中配置 webhook 本身。

    如果 Google 不接受默认 API 域名,API 网关支持 custom domain names,如 api.example.com

    编辑:

    基于这些选项,如果您配置 HTML 元标记,您似乎可以使用默认端点 xxxx.execute-api...amazonaws.com。

    您可以通过在我猜是 MOCK 集成的根资源上设置一个 GET 方法来做到这一点。该集成响应可以返回静态内容,因此您可以在集成响应部分粘贴 Google 正在寻找的任何 HTML。您可能还需要将响应“Content-Type”标头设置为“text/html”。

    【讨论】:

    • Kohn 我更新了我的问题并添加了站长支持的验证方法。您能否确认我们是否可以验证我们拥有它的 aws api 端点?
    • 已更新...自定义域名将与域名提供商选项一起使用。我希望 HTML 元标记选项应该与默认端点一起使用,您只需要配置它。
    • Kohn 我会尝试并告诉你。
    • Kohn 对于 HTML Meta 标签选项,我们需要一个主页,我们将在其中添加端点。 AWS api 网关端点的主页在哪里?
    • 没有“主页”,但 API 是完全通用的。您可以在 API 中配置资源/方法以返回 HTML。我假设这会起作用,因为谷歌可能只是从你给它的任何端点解析 HTML 响应。
    【解决方案4】:

    @Balaji 我能够计算出我们的 API 映射,以便将自定义子域与 API 链接起来。但是,当我使用 https://api.example.com(在本例中为 lambdanotifications..com)时,我得到了“缺少身份验证令牌”。我还尝试了 lambdanotifications。.com/notifications 和 lambdanotifications.***.com/notifications/test 在浏览器上,但同样的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-14
      • 2018-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多