【问题标题】:Running a function on EC2 through API Gateway通过 API Gateway 在 EC2 上运行函数
【发布时间】:2020-06-27 21:57:20
【问题描述】:

我想将 Amazon API Gateway 链接到我的 EC2 实例中的一个函数,但在网上几乎找不到关于如何执行此操作的信息。

目前我已将 API 调用设置如下:

任何人都可以阐明如何将 API 调用连接到我的 EC2 实例根文件夹中名为“test.py”的 python 函数

【问题讨论】:

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


    【解决方案1】:

    我想你也许可以使用AWS Run Command 服务来做到这一点,但这是一种奇怪的做事方式。 AWS 服务代理代理 AWS API。因此,告诉它代理 AWS EC2 服务会公开 AWS API 以管理 EC2 实例。管理 EC2 实例包括创建和删除服务器等内容。它不包括启动与服务器的 SSH 连接、登录服务器以及在服务器上运行命令的操作。

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-06-13
          • 2020-06-09
          • 1970-01-01
          • 2019-02-14
          • 2019-11-25
          • 1970-01-01
          • 2018-11-09
          • 2018-01-27
          相关资源
          最近更新 更多