【问题标题】:Can a Google Cloud Function knows its trigger endpoint?谷歌云函数可以知道它的触发端点吗?
【发布时间】:2020-04-15 06:19:42
【问题描述】:

我有一个用 Python 3.7 编写的 GCF,我正在尝试从函数本身中获取触发端点 url。

我需要该函数以编程方式将其 url 传递给其他系统。

我运气好吗?有没有办法做到这一点?

【问题讨论】:

  • 你指的是HTTP触发端点吗?
  • 是的尼克森。我正在寻找一种获取 HTTP 触发端点的方法。

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


【解决方案1】:

是的:

import os

def get_url(request):
    return request.url_root + os.environ['X_GOOGLE_FUNCTION_NAME']

【讨论】:

  • 冬青牛!这很有意义,我怎么没想到。!谢谢达斯汀!
  • 不幸的是,它应该更简单(只是 request.base_url),但 Cloud Functions 有一个不幸的错误/功能,它会从请求中删除函数名称。
  • 自 2021 年 10 月以来,我无法再看到 X_GOOGLE_FUNCTION_NAME 环境变量。根据to the documentationFUNCTION_NAME env 变量应该可以完成工作
【解决方案2】:

一种可能的解决方案是从 environ 字典中构造 url:

def get_url(request):

    env = request.__dict__['environ'] 
    return "https://{}-{}.cloudfunctions.net/{}".format(env['X_GOOGLE_FUNCTION_REGION'], env['GCP_PROJECT'], env['X_GOOGLE_FUNCTION_NAME'])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-31
    • 2020-04-19
    • 2021-06-07
    • 2019-12-29
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    • 2014-07-05
    相关资源
    最近更新 更多