Python谷歌云函数

2024-06-25 23:12:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我很难在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推送将这些文件以及requirements.txt(其中包含requests包及其传递项)放在一起,没有任何问题。触发器在推送时触发,函数构建正常,据我所知,它会生成绿色的小勾号图标

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

不管我做什么,它只会导致一个500服务器错误,并且从日志中看不到函数实际运行的迹象

我会错过什么


Tags: 函数代码namepyimportmainresponsedef
1条回答
网友
1楼 · 发布于 2024-06-25 23:12:09

对于main函数,我立即发现至少有两个问题

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

请尝试以下更改:

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

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

相关问题 更多 >