【问题标题】:How to copy a file from S3 bucket to an EC2 Windows instance using AWS Lambda function如何使用 AWS Lambda 函数将文件从 S3 存储桶复制到 EC2 Windows 实例
【发布时间】:2021-02-10 02:58:10
【问题描述】:

我正在尝试通过 AWS Lambda 函数将上传到 S3 的文件复制到 EC2 Windows 实例。我的要求是,当文件上传到 S3 存储桶并且应该将相同的文件复制到 EC2 实例时,应该触发 AWS Lambda 函数。

AWS Lambda 函数如何连接到 EC2 Windows 实例?请让我如何实现这种情况。

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-ec2 aws-lambda


    【解决方案1】:

    您可以通过两种方式解决此问题:

    1. 为您的 Lambda 和 EC2 创建共享文件系统。 https://aws.amazon.com/blogs/aws/new-a-shared-file-system-for-your-lambda-functions/

    2. 在您的 EC2 上创建 API 服务以接收文件。

    第一种方法是最安全的,也可能是更好的方法。 第二种方法更有趣。您可以创建一个 Node+Express API 来接收文件并在 POST 请求中从您的 Lambda 发送它。

    【讨论】:

      【解决方案2】:

      AWS Lambda 函数在 EC2 实例的外部运行。实际上,您可以将其视为一个非常临时的 EC2 实例。

      因此,您的问题的答案是“那么,您将如何将内容从 EC2 Linux 实例复制到 Windows 实例?”

      最大的问题是良好的安全性意味着将事物“推送”到 EC2 实例中并不容易。例如,我无法将东西推送到您当前使用的计算机中。因此,最好的答案是,与其“推”文件,不如“拉”文件。这里有几种方法:

      Systems Manager 运行命令

      AWS Lambda 函数可以触发AWS Systems Manager Run Command,它可以在 EC2 实例上执行脚本。该脚本可以将文件从 S3 '拉'到实例上。

      这之所以成为可能,是因为 EC2 实例安装了 Systems Manager 代理,它可以接收请求并触发脚本。

      轮询 Amazon SQS 队列

      AWS Lambda 函数可以向 Amazon SQS 队列发送消息。实例上的脚本可能会不断轮询 SQS 队列以查找消息。当它收到一条消息时,它会使用该信息将文件从 S3“拉”到实例中。 (在 SQS 队列上使用长轮询来减少请求的数量。)

      实际上,Amazon S3 可以直接将消息发送到 Amazon SQS 队列,而不需要 Lambda 函数。

      使用网络服务器

      AWS Lambda 函数可以通过在“侦听”此类请求的 EC2 实例上运行的 Web 服务器发布文件。

      共享文件系统

      正如@mimetist 所建议的,AWS Lambda 函数可以连接到 Amazon EFS 文件系统。因此,它可以将文件存储在文件系统上,如果 EC2 实例也挂载了相同的文件系统,则可以立即访问它。

      【讨论】:

      • 非常感谢约翰。将 AWS Lambda 与 S3 和 SSM 结合使用的第一种方法对我有用。我创建了一个 node.js 脚本来从 s3 获取自动事件并将详细信息推送回按预期工作的 powershell 脚本系统管理器运行命令文档。
      【解决方案3】:

      现在通过使用 AWS Lambda 和 S3 解决了这个问题,系统经理为我工作。我创建了一个 node.js 脚本来从 s3 获取自动事件并将详细信息推送回系统管理器运行 powershell 脚本文档,从而复制到按预期工作的 ec2 实例。

      您需要根据从 s3 到 EC2 的文件传输选择正确的实例类型

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-31
        • 2021-12-30
        • 1970-01-01
        • 1970-01-01
        • 2017-04-14
        • 1970-01-01
        • 2020-04-20
        • 2020-09-04
        相关资源
        最近更新 更多