我是相当新的GCP世界,我在这里问只是有一些其他信息对我的问题。
我想创建一个HTTP谷歌云功能,执行一些特定项目的操作。
同样,我需要从外部服务调用这个函数(比如说从Gsheet调用,拥有这个函数的SA可以编辑它)。
我看到有GoogleAppScripts,特别是URLFetchApp服务,我的想法是从那个服务调用那个函数。
为了进行身份验证,我看到需要库OAuth2,在这种情况下,是否需要为管理函数的帐户创建ClientID和ClientSecret?如果是这样,AppScript如何创建相关服务?
先谢谢你。
2条答案
按热度按时间zengzsys1#
你可以通过google apps脚本查询身份令牌,然后用它来调用gcloud函数。
我们要做的第一件事是拥有一个cloud函数,并确保您拥有调用它的权限(尝试使用其他方法执行它)。
然后,转到您的Apps Script项目清单并设置至少2个特定范围:
openid
允许我们获取一个标识令牌来调用函数,.../script.external_request
允许我们使用fetch。然后可以添加代码:
如参考文献中所述,
ScriptApp.getIdentityToken()
返回我们需要的OpenID令牌。参考文献
sd2nnvve2#
这和@Martí的回答一样有效,但我花了一天时间,因为我错过了一个微小但至关重要的步骤:**您需要在制作应用程序脚本后重新部署云函数,否则将无法验证客户端ID!**当您将应用程序脚本与同一GCP项目关联时,将为其分配此ID,因此请在此之后重新部署函数。