【问题标题】:Cloud Scheduler won't trigger Cloud FunctionCloud Scheduler 不会触发 Cloud Function
【发布时间】:2022-06-15 16:49:33
【问题描述】:

我正在尝试使用 Cloud Scheduler 按计划触发 Cloud Functions。我已经设置了一个具有 Cloud Function Invoker 角色的服务帐户,将其设置为调度程序上的服务帐户,并将 auth 标头设置为“添加 OIDC 令牌”。该 URL 与云函数的触发 URL 相同。

当我手动运行计划作业时,结果返回为“成功”,因此似乎没有任何身份验证问题。但是,我期望的结果(将新数据附加到 BigQuery 表)并没有发生。

此时您可能会认为云函数存在问题,但是当我手动运行该函数(没有调度程序)时,它的工作方式完全符合预期。

当我手动运行调度程序后检查云函数日志时,显然该函数没有被调用,所以调度程序和函数之间的交互似乎不工作。奇怪的是,我设置它的方式与我过去使用其他预定功能的方式完全相同,效果很好,所以我找不到它不起作用的原因。

任何想法我可能会出错?

【问题讨论】:

  • 您确定云调度程序会将 401 响应报告为失败吗?文档似乎没有说明这一点。您可以尝试关闭云功能上的身份验证(“允许未经授权的调用”)并重试看看有什么作用吗?
  • @somethingsomething 我已经看到在其他问题的各种解决方案中引用了该设置,但找不到它。它不会出现在运行时、构建、连接和安全设置或权限设置中。我能找到的最接近的是入口设置中的“允许所有流量”,这是默认情况下已经选择的。不确定用户界面是否发生了变化,或者我是否遗漏了什么。
  • 您所要做的就是将 --allow-unauthenticated 添加到您的gcloud functions deploy。或者,在云控制台中,看起来在初始部署后无法更改(或者更确切地说我找不到它),但这是您第一次创建它时的设置,在 Trigger -> Authentication 下。
  • 我刚刚按照您的指示创建了一个新功能,将调度程序切换到该功能并且它已经工作了 - 谢谢。编辑:这是我唯一设置为“允许未经身份验证”的功能,所以这并不能解释为什么我的其他功能一直在使用 Cloud Scheduler 而这个却没有。
  • 您可能在使用 oidc 服务帐户时犯了一个错误,添加了一个对该特定云功能没有“cloudfunctions.functions.invoke”权限的帐户。这应该被修复,允许未经身份验证并不是一个解决方案(因此我没有将其作为答案发布),而只是为了确认这是一个权限问题。

标签: google-cloud-platform google-cloud-functions google-cloud-scheduler


【解决方案1】:

这里似乎有调用没有到达云函数的问题,当调度器尝试使用函数调用服务帐户来触发作为函数运行器运行的云函数。云调度器的问题是它无法使用如果设置为“允许内部流量”,则触发该功能。

仅供内部使用的 HTTP 函数只能由在 VPC 网络中创建的 HTTP 请求调用,例如来自 Kubernetes Engine、Compute Engine 或 App Engine 柔性环境的请求。 这意味着由 Pub/Sub、Eventarc、Cloud Scheduler 和 Cloud Tasks 创建或通过其路由的事件无法触发这些函数[1]。

请检查负载均衡器配置以管理 Cloud Functions 中的流量。所以即使你选择了“允许内部流量和来自云负载平衡的流量”选项,它也只使用了“允许内部流量”的部分,因为没有管理负载平衡的选项。一种解决方法是创建负载均衡器[2] 来管理 Cloud Functions[3] 中的流量,或者如果您可以接受,您可以选择“允许所有流量”选项。

[1]https://cloud.google.com/functions/docs/networking/network-settings#ingress_settings

[2]https://cloud.google.com/iap/docs/load-balancer-howto

[3]https://cloud.google.com/load-balancing/docs/https/setting-up-https-serverless

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-14
    • 1970-01-01
    • 2020-10-26
    • 2019-04-12
    • 2021-08-03
    • 1970-01-01
    • 2022-08-16
    • 2018-06-25
    相关资源
    最近更新 更多