我很难在 GCP 函数中运行最简单的 Python 代码,非常感谢有人指出我可能遗漏的内容。
我的 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 触发函数构建:
steps:
- name: 'gcr.io/cloud-builders/gcloud'
args:
- functions
- deploy
- main
- --source=.
- --trigger-http
- --runtime=python38
- --allow-unauthenticated
git push 将这些文件连同 requirements.txt(包含请求包及其传递)放在一起完全没有问题。触发器在按下时触发,函数构建正常,据我所知,它会产生绿色的小勾号图标。
我的期望是,在函数构建完成后,我应该能够通过点击谷歌提供的 URL 或通过函数控制面板中的测试实用程序来触发它。
不管我做什么,它都只会导致 500 服务器错误,并且日志中没有迹象表明该函数实际运行了。
我会遗漏什么?
答案 0 :(得分:0)
我立即发现 main 函数中至少有两个问题。
请尝试以下更改:
def main(request):
作为 func main
的第一行return "success"
作为 func main
的最后一行(或您选择的响应)。请参阅此 link 以查看示例。请注意 Ensure HTTP functions send an HTTP response
部分以及包含 request (flask.Request): The request object
的参数。