2

我有一种不常用的云功能,它的冷启动延迟很慢。我想通过保持函数温暖来减少这种延迟。此函数通常仅由应用引擎应用调用,因此它具有限制 Cloud Invoker 权限。Cloud Scheduler 似乎是 ping 函数以使其保持温暖的一个很好的候选者。似乎有必要直接调用该函数。尽管常见的约定是使用 pub/sub 来调度函数,但单个函数不能同时被 http 触发和 pubsub 触发。

我将我的 Cloud Scheduler 作业设置如下,但在运行时仍然出现 PERMISSION_DENIED 错误。是配置错误,还是 Cloud Scheduler 无法直接通过 http 调用身份验证函数?一种怀疑是 Audience 参数实际上并不是 Cloud Functions 所期望的“target_audience”参数,而是标准的“aud”参数。

在此处输入图像描述

4

1 回答 1

2

有几个潜在的问题需要调查:

1) 您是否拥有服务帐户的 iam.serviceAccounts.actAs 权限?

当 Cloud Scheduler 从服务帐户创建令牌时,它需要权限iam.serviceAccounts.actAs。这是在作用roles/iam.serviceAccountUser。将此角色添加到Cloud Scheduler Service Agent(请注意“代理”一词)。

2) Cloud Run 是否允许此服务帐户权限?

除非您已启用,否则您allUsers需要将服务帐号添加到 Cloud Run。这是在“权限”选项卡下的“显示信息面板”中。您也可以使用--service-account命令行选项通过 CLI 添加它。

于 2019-10-10T17:21:58.717 回答