2

我正在测试一个非常基本的 Pub/Sub 订阅。我将推送端点设置为我通过 App Engine 中的 Python Flex 服务部署的应用程序。该服务位于启用了 Identity-Aware Proxy 的项目中。IAP 被配置为允许通过我们的域进行身份验证的用户。

我没有看到我的应用正在处理任何推送请求。

我关闭了 IAP 保护,然后我看到请求已被处理。我重新打开它,它们不再被处理。

在尝试运行 Cron 服务时,我遇到了与 IAP 类似的问题;在我在同一个项目中部署了一个新的测试应用程序后,该问题自行解决了。

有没有人通过 IAP 配置推送订阅成功?我还尝试将不同的服务帐户放在 IAP 访问列表中,但它们都不起作用。

4

2 回答 2

1

我不知道如何让 Pub/Sub 推送订阅 + Flex + IAP 工作。我想知道...如果订阅者使用标准版,它可能会起作用。

其他一些潜在的解决方法: - 切换到 Pull 订阅者。- 将 Cloud Functions 函数设置为您的 Pub/Sub 订阅者 -- https://cloud.google.com/functions/docs/writing/background -- 然后在该函数中使用https将请求传递给 GAE 应用程序://cloud.google.com/iap/docs/authentication-howto作为服务帐户进行身份验证。

对不起,我希望我有一个更好的答案给你,但 AFAIK 这些是今天有效的选项。--Matthew,IAP 工程主管

于 2017-11-11T00:58:31.570 回答
1

我有一个非常相似的问题 - 项目 A 中的 GAE 2nd G 标准应用程序,它连接在 IAP 下,无法接收来自项目 B 的推送发布/订阅消息。

我的解决方法是:

  1. 在项目 A 中设置 Cloud Function(HTTP 触发);
  2. 设置项目 B Pub/Sub 主题的订阅,将消息推送到上述 Cloud Function 端点;
  3. 上面的云函数就像一个代理来过滤(根据我的情况需要,ymmv)并在一个 http 请求中将 Pub/Sub 消息转发到 GAE 应用程序;
  4. 由于 Cloud Function 与 GAE 应用程序在同一个项目中,因此只需为上述 http 请求添加 IAP 身份验证(获取从特定 SA 分配的令牌)。
  5. 项目 B IAM 中应该有项目 A 的 SA 设置,它可能至少具有 Pub/Sub Subscriber 和 Pub/Sub Viewer 角色。

希望这可能是您的情况的一个选择。

于 2020-01-14T19:01:28.743 回答