Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法从谷歌云运行已经构建好的python API?_Python_Python 3.x_Google Cloud Platform_Google Cloud Storage - Fatal编程技术网

有没有办法从谷歌云运行已经构建好的python API?

有没有办法从谷歌云运行已经构建好的python API?,python,python-3.x,google-cloud-platform,google-cloud-storage,Python,Python 3.x,Google Cloud Platform,Google Cloud Storage,我构建了一个运行在本地机器上的python API。我想从Google Cloud SDK运行此API,但在查看文档并在Google上搜索“从Google Cloud SDK运行本地python API”的每一个变体之后,我没有找到任何不涉及我对脚本进行大量重构的内容。我有一种预感,“google run”或“API endpoint”可能是我所寻找的,但作为Firestore以外的所有产品的完全新手(如果不需要的话,我宁愿不将我的整个API转换成Firestore),我想问一下是否有一种简单的

我构建了一个运行在本地机器上的python API。我想从Google Cloud SDK运行此API,但在查看文档并在Google上搜索“从Google Cloud SDK运行本地python API”的每一个变体之后,我没有找到任何不涉及我对脚本进行大量重构的内容。我有一种预感,“google run”或“API endpoint”可能是我所寻找的,但作为Firestore以外的所有产品的完全新手(如果不需要的话,我宁愿不将我的整个API转换成Firestore),我想问一下是否有一种简单的方法可以做到这一点


tl;dr当我在本地控制台中简单地键入“python apiscript.py”时,API成功运行,有没有一种方法可以将其传输到Google Cloud,而无需对脚本本身进行太多调整?

IMO,便携式应用程序最简单的解决方案是使用容器。要以无服务器模式托管容器,可以使用

在《入门指南》中,您有一个python示例。您的主要任务是创建一个

我根据您的描述修改了脚本,并假设您有一个
requirements.txt
依赖项文件

现在,构建您的容器

gcloud builds submit --tag gcr.io/<PROJECT_ID>/apiscript
gcloud builds submit--标记gcr.io//apiscript
用您的项目ID替换项目ID,而不是项目名称(即使有时是相同的,这也是新来者的常见错误)

部署在云上运行

gcloud run deploy --region=us-central1 --image=gcr.io/<PROJECT_ID>/apiscript --allow-unauthenticated --platform=managed apiscript
gcloud run deploy--region=us-central1--image=gcr.io//apiscript--allow unauthenticated--platform=managed apiscript
我假设您的API在端口8080上提供。否则,您需要添加一个
--port
参数来覆盖它

这应该足够了


这里是一个入门示例,您可以更改区域、安全模式(这里没有安全模式)、名称和项目


此外,对于此部署,将使用计算引擎默认服务帐户。如果需要,您可以使用其他服务帐户,但在任何情况下,您都需要授予已使用的服务帐户访问Firestore数据库的权限。

IMO,便携式应用程序最简单的解决方案是使用容器。要以无服务器模式托管容器,可以使用

在《入门指南》中,您有一个python示例。您的主要任务是创建一个

我根据您的描述修改了脚本,并假设您有一个
requirements.txt
依赖项文件

现在,构建您的容器

gcloud builds submit --tag gcr.io/<PROJECT_ID>/apiscript
gcloud builds submit--标记gcr.io//apiscript
用您的项目ID替换项目ID,而不是项目名称(即使有时是相同的,这也是新来者的常见错误)

部署在云上运行

gcloud run deploy --region=us-central1 --image=gcr.io/<PROJECT_ID>/apiscript --allow-unauthenticated --platform=managed apiscript
gcloud run deploy--region=us-central1--image=gcr.io//apiscript--allow unauthenticated--platform=managed apiscript
我假设您的API在端口8080上提供。否则,您需要添加一个
--port
参数来覆盖它

这应该足够了


这里是一个入门示例,您可以更改区域、安全模式(这里没有安全模式)、名称和项目


此外,对于此部署,将使用计算引擎默认服务帐户。如果需要,您可以使用另一个服务帐户,但在任何情况下,您都需要授予已使用的服务帐户访问Firestore数据库的权限。

您在哪一步遇到此问题?图像名称只能用小写,不能使用u下划线问题出在下划线上。谢谢你的帮助!您在哪一步遇到此问题?图像名称只能用小写,不能使用u下划线问题出在下划线上。谢谢你的帮助!