如何通过 android 应用程序 运行 AWS 服务器上的 python 代码

How to run the python code on AWS server via the android app

我现在正在谈论 Python 和 AWS,我目前正在做我的一个项目, 这需要我使用 kivy 开发 android 应用程序,并且一些功能是使用 python 执行的。但是计算量比较大,所以我想先接入AWS云系统,所有的计算工作都在AWS上完成,计算完成后,把结果告诉android 应用程序。谁能告诉我如何在 AWS 服务器上 运行 我的 python 代码,实际上,我的项目是关于人脸识别的,如果用户单击一个按钮,它将连接到云服务器,而he/she点击另一个按钮,会把测试图片上传到云服务器,计算算法都在AWS上。

我建议您将 Python 代码打包成 AWS Lambda function and expose it through a REST API

AWS SAM 框架和命令行将帮助您轻松设置该基础设施。

https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-quick-start.html

它会让你

  • 搭建您的初始项目 (sam init)
  • 在本地测试您的代码 (sam local)
  • 打包您的应用以进行部署(sam package
  • 将您的应用程序部署到云端 (sam deploy)

甚至允许您访问服务器端日志 (sam logs)

注意您的 REST API 的安全性,不要将其公开给全世界,而只公开给您的客户。有关详细信息,请参阅“Controlling access to your API

虽然@SebatienStomarcq 的回答很好并且应该有效,但我想补充我的 2 美分并建议您改用 S3 events

如果您是说单击一个按钮就会将图像上传到云服务器,我必须假设您已经在使用 S3 来存储这些图像。如果没有,我强烈建议您这样做。

一旦您的文件进入 S3,您就可以捕获它的事件(这些事件是高度可配置的,这意味着您可以监听 PUT、COPY、DELETE 等事件)并无缝地向它发送一些其他 AWS 服务,例如 SNS 和 Lambda。

考虑到这一点,您现在可以将由 S3 事件触发的 Lambda 配置为 运行 您的算法,甚至使用非常适合您的用例的 AWS Rekognition。如果您希望同时触发多个函数,您也可以将 S3 事件发送到 SNS 主题,并让您的 Lambda 函数订阅该主题,从而让您获得并行处理和开箱即用的自动扩展。