Google Cloud Function + Go +签名URL +服务帐户

时间:2019-07-06 09:00:55

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

我正在尝试实现一个函数,该函数将为Cloud Storage对象返回签名的Urls(我知道它是beta版本,尚未正式支持go)。

我让它在本地使用

url, err := storage.SignedURL(bucket, filename, &storage.SignedURLOptions{
    GoogleAccessID: "my-service-account@my-project.iam.gserviceaccount.com",
    PrivateKey:     pkey,
    Method:         "GET",
    Expires:        time.Now().Add(90 * time.Minute),
    Scheme:         storage.SigningSchemeV4,
})

一切正常,我使用GOOGLE_APPLICATION_CREDENTIALS环境变量指向my-service-account.json密钥文件。

当我将相同的代码部署到云函数时,尝试访问时,生成的URL都将返回403

我确实使用
部署了功能 --service-account my-service-account@my-project.iam.gserviceaccount.com
并且我可以在云控制台中验证该功能是否正在该服务帐户下运行。

根据我的理解,这应该意味着两个实例在相同的凭据/权限下运行,但只有本地运行的实例会生成有效的URL,而Cloud部署的版本则不会。
我在这里想念什么,如何使它起作用?

0 个答案:

没有答案