【问题标题】:Calling Google App Engine endpoint from Google Pub/Sub从 Google Pub/Sub 调用 Google App Engine 端点
【发布时间】:2021-10-03 04:28:39
【问题描述】:

我创建了一个指向 Google App Engine 端点的 Google Pub/Sub 推送订阅,但 GAE 没有收到任何内容。

消息正在发布(我可以在 Pub/Sub 控制台上看到),但从未确认。

端点 URL 应该是正确的,因为我公开了我的 GAE 端点并使用 Postman 进行了测试。

Google Pub/Sub 是否不支持调用 Google App Engine 端点? 还是我在这里遗漏了什么?

感谢有人可以帮助解决这个问题。

【问题讨论】:

    标签: google-app-engine google-cloud-pubsub


    【解决方案1】:

    对于要确认的消息,这意味着它必须被订阅者接收。你是如何做到这一点的?我问是因为 GAE(至少是 GAE 标准)不支持流式传输,这意味着您不能无限期打开连接来监听来自 pubsub 的消息。

    【讨论】:

    • 嗨。抱歉解释不充分。我从 Google Pub/Sub GUI 创建了推送订阅。此推送订阅应该将发布的消息推送到 GAE 端点,但它没有。
    【解决方案2】:

    是的,Google Pub/Sub 支持调用 Google App Engine 端点。我提到了这个documentation

    根据文档,我将 App Engine Flex Env​​ironment 与 Pub/Sub 推送订阅一起使用,并且能够获取从 Pub/Sub 发布到端点的消息。

    您可以参考下面提到的步骤:

    • 参考此document,使用 App Engine Flex Env​​ironment 创建一个应用程序。
    • 将应用程序部署到 GCP。
    • 应用部署所需的文件是模板文件夹内的 app.yaml、requirements.txt、main.py 和 index.html 文件。
    • 文件夹结构:
    Demo→
    app.yaml
    requirements.txt
    main.py
    templates→
        index.html
    
    
    • 在 app.yaml 文件中提供 Pub/Sub 主题名称和令牌 ID(应与 Pub/Sub 推送端点令牌 ID 相同)。
    env_variables:
        PUBSUB_TOPIC: your-topic
        PUBSUB_VERIFICATION_TOKEN: 1234abcd
    
    • 在演示目录上运行 gcloud app deploy
    • 应用部署后,您将获得一个端点 URL,格式为:https://PROJECT_ID.REGION_ID.r.appspot.com
    • 示例:https://mydemoproject.uc.r.appspot.com
    • 创建 Pub/Sub 主题和订阅,并将交付类型设为 push
    • 我们需要提供一个推送端点,格式为:https://mydemoproject.uc.r.appspot.com/pubsub/push?token=1234abcd

    当应用程序部署在 App Engine 中时,我们可以通过 - https://PROJECT_ID.REGION_ID.r.appspot.com

    访问该应用程序

    这些消息将被您部署在 App Engine 中的应用程序的任何实例接收。

    SSH 到您的实例并使用虚拟机中的 App Engine 端点 URL。

    实例 1 的输出:

    实例 2 的输出:

    【讨论】:

      猜你喜欢
      • 2017-09-22
      • 2016-11-30
      • 2018-07-05
      • 1970-01-01
      • 2018-05-17
      • 2014-04-16
      • 1970-01-01
      • 2020-12-17
      • 2016-02-15
      相关资源
      最近更新 更多