通过API网关在EC2上运行功能

时间:2016-04-18 07:39:39

标签: python amazon-web-services amazon-ec2 aws-api-gateway

我想将Amazon API Gateway链接到我的EC2实例中的一个函数,但我在网上找不到hwo来做这件事。

目前我已按如下方式设置API调用: enter image description here

任何人都可以了解如何将API调用连接到名为' test.py'的python函数。在我的EC2实例的根文件夹中

3 个答案:

答案 0 :(得分:2)

我认为您可以使用AWS Run Command服务执行此操作,但这是一种奇怪的处理方式。 AWS Service Proxy代理AWS API。因此告诉它代理AWS EC2服务会公开AWS API来管理EC2实例。管理EC2实例包括创建和删除服务器等内容。它不包括启动到服务器的SSH连接,登录服务器,然后在服务器上运行命令的事情。

通过API网关在服务器上运行脚本的标准方法是通过EC2服务器上的Web服务器公开该脚本,然后让API网关点击相应的URL。

答案 1 :(得分:1)

API Gateway无法直接执行位于EC2实例文件系统上的Python函数。 API网关只能通过http / https端点与EC2实例进行交互。如果必须在EC2实例上运行Python函数,那么您需要在EC2实例上运行Web服务器或应用程序服务器,并将其设置为在特定路径上获取请求时执行Python函数。然后设置API网关http集成端点以使用该路径。

如果您只需要执行此Python函数并且不一定需要它在此EC2实例上运行,那么您可以设置包含Python函数的Lambda函数。然后设置API网关以调用Lambda函数。使用Lambda方法意味着您不需要管理EC2实例。此外,对于小批量使用情况,Lambda比运行专用EC2实例更具成本效益。

答案 2 :(得分:0)

您可以通过从API网关集成请求中调用系统管理器“发送命令”来实现。 EC2实例必须由SSM和与您的EC2实例相关联的实例角色来管理。