Python Google Cloud Function



我很难让最简单的Python代码在GCP函数中运行,如果有人指出我可能错过了什么,我将非常感激。

我的Python非常基本,看起来像:

main.py

import requests
def main():
"""
Simple
"""
print("got here ok")
print("----all good.")
response = requests.get('https://swapi.dev/api/people/1')
print(response.text)
if __name__ == "__main__":
main()

从字面上看,我想要的(开始)是能够触发这个函数,让它去swapi,给我带回一个json块,并将其打印到日志或其他地方(这样我就可以看到它做到了)。这一切。

我用触发器和cloudbuild.yaml:

触发函数build
steps:
- name: 'gcr.io/cloud-builders/gcloud'
args:
- functions
- deploy
- main
- --source=.
- --trigger-http
- --runtime=python38
- --allow-unauthenticated

git push会把这些文件和requirements.txt(其中包含了requests包和它的传递)放在一起,没有任何问题。触发器在push时触发,函数构建正常,据我所知,它产生了一个绿色的小勾号图标。

我的期望是,在函数建立之后,我应该能够通过点击google提供的URL或通过功能控制面板中的测试实用程序来触发它。

无论我做什么,它只是导致一个500服务器错误,没有从日志中显示函数实际运行的迹象。

我还能错过什么?

我立即发现main函数至少有两个问题。

  1. 它没有任何参数
  2. 它不返回任何东西

请尝试以下更改:

  1. def main(request):作为函数main的第一行
  2. return "success"作为函数main的最后一行(或您选择的响应)。

请参考此链接查看示例。注意Ensure HTTP functions send an HTTP response部分以及包含request (flask.Request): The request object的参数。

相关内容

  • 没有找到相关文章

最新更新