我需要在GCP中编写一个云函数,它可以响应HTTP请求,并具有对GCP云存储的服务帐户访问权限。我的函数将接收一个字符串和阈值参数。它将从云存储中检索csv文件,计算提供的文本字符串与csv文件中的实体之间的相似性,并返回满足阈值要求的实体。
从谷歌的云功能教程中,我还没有看到任何东西可以让它访问云存储,访问其中的服务帐户,等等。
有人能链接资源或以其他方式解释如何从a到B吗?
让魔术发生吧!
事实上,没有什么是魔法。对于大多数谷歌云产品,您都有一个服务帐户,可以授予您想要的权限。在云功能上,默认服务帐户是具有此模式<projectID>@appspot.gserviceaccount.com
的AppEngine默认服务帐户。
当您部署云功能时,您可以使用此参数--service-account=
使用自定义服务帐户。它更安全,因为您的云功能可以拥有自己的服务帐户,权限有限(应用程序引擎默认服务帐户默认为Project Editor,太宽了!!(
因此,此服务会自动加载您的云功能,Google cloud身份验证库可以通过元数据服务器访问它。凭据取自运行时上下文,它是环境的默认凭据
关于你的代码,保持它像一样简单
from google.cloud import storage
client = storage.Client() # Use default credentials
bucket = client.get_bucket('myBucket')
blobs = bucket.list_blobs()
for blob in blobs:
print(blob.size)
在您的工作站上,如果您想执行相同的代码,您可以通过运行以下命令使用自己的凭据gcloud auth application-default login
。如果您更喜欢使用服务帐户密钥文件(我强烈不建议使用,但这不是主题(,您可以将文件路径设置为值的环境变量GOOGLE_APPLICATION_CREDENTIALS