将变量传递给 Google Cloud 函数

Posted

技术标签:

【中文标题】将变量传递给 Google Cloud 函数【英文标题】:Passing Variables To Google Cloud Functions 【发布时间】:2019-02-13 11:32:28 【问题描述】:

我刚刚在 Beta Python 3.7 运行时中使用 HTTP 触发器完成了 Google Cloud Function 的编写。现在我试图弄清楚在调用它时如何将字符串变量传递给我的函数。我已经阅读了文档,但我没有找到任何关于此的内容。

我的触发器类似于:

https://us-central1-*PROJECT_ID*.cloudfunctions.net/*FUNCTION_NAME*

我是否误解了 Cloud Functions 的工作原理?您甚至可以将变量传递给它们吗?

【问题讨论】:

【参考方案1】: 推荐的答案 Google Cloud

将变量传递给函数的方式与将变量传递给任何 URL 的方式相同:

1。通过带有查询参数的GET

def test(request):
    name = request.args.get('name')
    return f"Hello name"
$ curl -X GET https://us-central1-<PROJECT>.cloudfunctions.net/test?name=World
Hello World

2。通过带有表单的POST

def test(request):
    name = request.form.get('name')
    return f"Hello name"
$ curl -X POST https://us-central1-<PROJECT>.cloudfunctions.net/test -d "name=World"
Hello World

3。通过带有 JSON 的POST

def test(request):
    name = request.get_json().get('name')
    return f"Hello name"
$ curl -X POST https://us-central1-<PROJECT>.cloudfunctions.net/test -d '"name":"World"'
Hello World

更多细节可以在这里找到:https://cloud.google.com/functions/docs/writing/http

【讨论】:

好东西。谢谢 如果系统启动多个实例,每个实例都运行云功能以响应负载,这是否有效 - 我可以确定它们都可以处理至少一次设置参数/变量的请求吗? @nsandersen 每个请求将仅由单个实例处理。 如何将参数/变量传递给所有实例?让函数将它写入共享存储并让它定期检查它,以便接收它的实例将它写入磁盘,其余的稍后再取它? 您能描述一下用例是什么吗?实例是短暂的,并且不会维护状态,除非您将其存储在外部(例如,在数据库中)。

以上是关于将变量传递给 Google Cloud 函数的主要内容,如果未能解决你的问题,请参考以下文章

如何将变量传递给电子表格函数?

如何从 google-cloud-platform vminstance 中的 pubsub 回调函数调用全局变量?

将参数从 Google Cloud 函数 GET 请求传递到 BigQuery

如何将变量传递给评估函数?

将变量传递给函数\使用该变量返回一个新值\重复直到值达到 0

将类型变量传递给函数