如何启用 Google 云函数以供 GitHub Webhook 调用
How to enable a Google Cloud Function to be invoked by GitHub Webhook
我设置了一个 GitHub Webhook,它是我的 Cloud Function 的触发器,因此每当使用此 GithHub Webhook 对存储库进行更改时,都会调用 Cloud Function。它适用于未经身份验证的访问,但在使用经过身份验证的访问时,必须完成一些设置。
我已经尝试在 GCP 中使用服务帐户,其中服务帐户只能调用特定的 Cloud Function,但问题是我无法明确地将此服务帐户分配给 GitHub's网络钩子。
注意:我考虑过使用 Bearer Token 并将其添加到我的 Cloud Function 中,这将提供一层安全性,但这不会阻止调用 Cloud Function,对吗?
是的,您需要使用 Google 帐户(服务帐户或用户帐户)进行身份验证,并获得 IAM 授权才能调用该功能。遗憾的是 Github webhook 不支持服务帐户密钥文件来生成安全令牌,然后安全地调用您的 Cloud Functions。
但是,您可以使用 API 键(您可以将其添加到 WebHook 的 URL 中)。我写了 an article that also work today with API Gateway(我文章中使用的 ESPv2 托管版本)
我设置了一个 GitHub Webhook,它是我的 Cloud Function 的触发器,因此每当使用此 GithHub Webhook 对存储库进行更改时,都会调用 Cloud Function。它适用于未经身份验证的访问,但在使用经过身份验证的访问时,必须完成一些设置。
我已经尝试在 GCP 中使用服务帐户,其中服务帐户只能调用特定的 Cloud Function,但问题是我无法明确地将此服务帐户分配给 GitHub's网络钩子。
注意:我考虑过使用 Bearer Token 并将其添加到我的 Cloud Function 中,这将提供一层安全性,但这不会阻止调用 Cloud Function,对吗?
是的,您需要使用 Google 帐户(服务帐户或用户帐户)进行身份验证,并获得 IAM 授权才能调用该功能。遗憾的是 Github webhook 不支持服务帐户密钥文件来生成安全令牌,然后安全地调用您的 Cloud Functions。
但是,您可以使用 API 键(您可以将其添加到 WebHook 的 URL 中)。我写了 an article that also work today with API Gateway(我文章中使用的 ESPv2 托管版本)