从 Cloud Function 本身获取 Cloud Function 名称
Get a Cloud Function name from the Cloud Function itself
向 Twilio 发送 SMS 时,Twilio 会向指定的 URL 发送多个请求,以通过 webhook 提供该 SMS 传送的状态。我想让这个回调异步,所以我开发了一个云函数,它将请求的表示形式发送到云任务,云任务本身到达我的应用程序的专用端点,在内部重新创建和模拟 Twilio 请求。
Twilio 使用以下方式签署他的请求:
- 我的 twilio 帐户的密钥
- 它伸出的绝对URL
- 和他的请求正文
所以在我的后端,我应该知道 Twilio 最初到达了哪个端点。我想在 Cloud Function 内部执行此操作,并且我想以编程方式执行此操作,因为当人们回复 SMS 时也会使用此“异步 webhook”。
我的 webhook 当前 URL 具有以下格式:
https://<location>-<project>.cloudfunctions.net/<cloud function name>/<some SMS uuid>
发送到我的 Cloud Task 的当前负载如下:
absoluteUri: req.protocol + '://' + req.hostname + req.originalUrl,
relativeUri: req.originalUrl,
queryParams: req.query,
headers: req.headers,
body: req.body,
问题是 req.originalUrl
不包含完整的 URI,我的 absoluteUri
当前是:
https://<location>-<project>.cloudfunctions.net/<some SMS uuid>
所以这是我的问题:在 Cloud Functions 中,有没有办法以编程方式获取其名称?
由于 Cloud Function 名称是入口点并且应该被硬编码,所以我最终编写了一个部署脚本来设置一些占位符。
看起来很丑,如果有更好的方法欢迎。
我正在使用 python 3.9 并从奇怪命名的“K_SERVICE”环境变量中获取 Cloud Function 名称。
import os
print("Current Cloud Function Name {}".format(os.environ.get('K_SERVICE')))
尽你所能享受它们,Google 将在每个新语言版本中删除越来越多有用的环境变量。
https://cloud.google.com/functions/docs/configuring/env-var#python_37_and_go_111
向 Twilio 发送 SMS 时,Twilio 会向指定的 URL 发送多个请求,以通过 webhook 提供该 SMS 传送的状态。我想让这个回调异步,所以我开发了一个云函数,它将请求的表示形式发送到云任务,云任务本身到达我的应用程序的专用端点,在内部重新创建和模拟 Twilio 请求。
Twilio 使用以下方式签署他的请求:
- 我的 twilio 帐户的密钥
- 它伸出的绝对URL
- 和他的请求正文
所以在我的后端,我应该知道 Twilio 最初到达了哪个端点。我想在 Cloud Function 内部执行此操作,并且我想以编程方式执行此操作,因为当人们回复 SMS 时也会使用此“异步 webhook”。
我的 webhook 当前 URL 具有以下格式:
https://<location>-<project>.cloudfunctions.net/<cloud function name>/<some SMS uuid>
发送到我的 Cloud Task 的当前负载如下:
absoluteUri: req.protocol + '://' + req.hostname + req.originalUrl,
relativeUri: req.originalUrl,
queryParams: req.query,
headers: req.headers,
body: req.body,
问题是 req.originalUrl
不包含完整的 URI,我的 absoluteUri
当前是:
https://<location>-<project>.cloudfunctions.net/<some SMS uuid>
所以这是我的问题:在 Cloud Functions 中,有没有办法以编程方式获取其名称?
由于 Cloud Function 名称是入口点并且应该被硬编码,所以我最终编写了一个部署脚本来设置一些占位符。
看起来很丑,如果有更好的方法欢迎。
我正在使用 python 3.9 并从奇怪命名的“K_SERVICE”环境变量中获取 Cloud Function 名称。
import os
print("Current Cloud Function Name {}".format(os.environ.get('K_SERVICE')))
尽你所能享受它们,Google 将在每个新语言版本中删除越来越多有用的环境变量。 https://cloud.google.com/functions/docs/configuring/env-var#python_37_and_go_111