我不确定这是否是Cloud Pub / Sub内部错误

时间:2019-08-12 11:35:45

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

最近,在测试我的Google Cloud功能时,我开始出现此错误:

textPayload:  "2019/08/12 11:15:58 error publishing to the topic - rpc error: code = Unauthenticated desc = transport: compute: Received 500 `Could not fetch URI /computeMetadata/v1/instance/service-accounts/default/token?scopes=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform%2Chttps%3A%2F%2Fwww.googleapis.com%2Fauth%2Fpubsub"

这让我感到惊讶。最近,我对函数进行了一些更改,但事实并非如此。我恢复了以前运行的旧代码,却遇到了同样的错误。

我读了Cloud Pub/Sub docs on errors

  

内部500,该错误表示内部服务器错误;它不应该发生。如果发生此错误,请报告给云支持。该错误应该是暂时的。

我已将其报告给云支持。

不过,我不确定这是Google Cloud内部错误还是由我的代码引起的错误。

编辑:这是Go中非常简单的代码。

package testfcn

import (
    "log"
    "net/http"

    "cloud.google.com/go/pubsub"
)

func TestFcn(w http.ResponseWriter, r *http.Request) {

    ctx := r.Context()

    client, err := pubsub.NewClient(ctx, "min-fotball-staging")
    if err != nil {
        log.Print("error creating PubSub client - ", err)
        return
    }

    topic := client.Topic("TestTopic")

    result := topic.Publish(ctx, &pubsub.Message{
        Data: []byte("TestMessage"),
    })

    _, err = result.Get(ctx)
    if err != nil {
        log.Print("error publishing to the topic - ", err)
        return
    }

}

我有一个名为 TestTopic 的主题。

1 个答案:

答案 0 :(得分:0)

这不是Cloud Pub / Sub客户端库的内部错误。

项目的service-<project_number>@gcf-admin-robot.iam.gserviceaccount.com服务帐户尚未分配Cloud Functions Service Agent角色。

无法通过Google Cloud Console添加此角色,而是使用gcloud命令:

gcloud projects add-iam-policy-binding <project_name> --role=roles/cloudfunctions.serviceAgent --member=serviceAccount:service-<project_number>@gcf-admin-robot.iam.gserviceaccount.com

可能有用的链接:

额外: 就我而言,该服务帐户具有Owner角色。这意味着Owner角色没有Cloud Functions Service Agent角色拥有的某些权限。