【问题标题】:Is there a way to directly trigger an ECS Task (i.e. without Lambda) on object upload to S3 using the Serverless Framework?有没有办法在使用无服务器框架将对象上传到 S3 时直接触发 ECS 任务(即没有 Lambda)?
【发布时间】:2021-02-22 04:01:19
【问题描述】:

问题:在将对象上传到 S3 时触发 ECS 任务。这个AWS tutorial 让它看起来是可能的,但是似乎没有太多关于如何使用无服务器框架来模拟它的信息。

约束:正如AWS tutorial 中所解释的,在不使用中间 Lambda 的情况下触发 ECS 任务

免责声明:我对无服务器(技术和这个框架)非常陌生,所以我可能从根本上误解了一些东西。尽管如此,我还是非常渴望学习和使用这些令人难以置信的工具进行构建,并希望得到任何帮助/指导!

【问题讨论】:

    标签: amazon-s3 amazon-ecs serverless-framework


    【解决方案1】:

    您的问题陈述自相矛盾 - 您是想使用 Lambda + Serverless 触发 ECS 任务,还是不使用 Lambda?无服务器是一个框架,用于在 AWS 上构建和部署 Lambda 函数,或在任意数量的 IAAS 提供商上构建和部署无服务器函数。如果您不想要 Lambda 解决方案,则无需使用 Serverless。

    选项 1 - 从 EventBridge 触发 ECS 任务

    这是您链接的教程中详细介绍的选项。 EventBridge 是一项 AWS 服务,可将各种 AWS、第三方或自定义事件连接到多个受支持的目标。

    • 当对象上传到 S3 时,已经存在一个事件发布到 EventBridge 上的默认事件总线。
    • 设置在此事件触发时触发的事件规则。
    • 在此事件规则上设置一个目标,该目标在触发事件时运行 ECS 任务。 (所以每当一个对象上传到 S3 时)。 S3上传事件->事件规则->目标->运行ECS任务 您可以在 AWS 控制台上或使用 API 执行此操作。

    选项 2 - 触发 Lambda 函数

    看来您对此不感兴趣。但是在这里列出是因为您提到了无服务器。

    • 编写一个 Lambda 函数,该函数使用 AWS API 在 ECS 任务被调用时运行它。
    • 您可以使用无服务器开发和部署此功能。
    • 关于如何调用此 Lambda 函数,您有几个选项
      1. 每当有对象上传到 S3 时,创建一个 SNS 主题并发布到该主题。您可以在 S3 存储桶上进行设置。将您的 Lambda 函数与此 SNS 主题挂钩。
      2. 使用上述 AWS 事件并将 Lambda 函数设置为您的目标。使用 Serverless 的示例是 here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多