【问题标题】:AWS trying to use LambdaAWS 尝试使用 Lambda
【发布时间】:2018-03-26 00:03:15
【问题描述】:

很抱歉提出这种问题..但我有点迷路了....

我有一个应用程序,它包含作为前端的 Angular4 和作为后端的 Java 应用程序。 但我打算使用 AWS Lambda,因为我在亚马逊上看到视频后很感兴趣。

问题是我不知道如何充分利用 AWS。

我的 Java 应用有一个非常耗时的任务来处理一些图像(这需要几秒钟)。

但我不确定我是否可以在 Lambda 中部署我的所有应用程序,或者我的想法是使用 EC2 服务器,然后在 lambda 中执行图像处理的特定任务。有人可以在这里阐明一下吗?

另外,前端应用程序可以部署在 lambda 中,或者同样,lambda 仅用于特定任务?

编辑: 申请流程为: 角度应用程序中的用户上传图像,图像进入Java后端服务器并将其存储在(可能)AWS存储桶中。然后带有imagemagick的Java应用程序处理图像并将结果存储在(可能) 另一个桶。

所以问题是我什么时候需要使用 Lambda?只是为了转换图像,或者是否有完整的后端(可能还有前端)应用程序?

我问是因为我找不到足够的信息...

【问题讨论】:

  • 您能描述一下您计划使用 Lambda 进行图像处理的流程吗?它是由 Angular App 触发的吗?
  • 嗨! @Ashan 我刚刚添加了流程。谢谢!
  • 何时使用 lambda 的问题完全取决于您。像serverless 这样的框架可以让你使用 lambda 来做所有事情,所以这绝对是一个选择。您需要稍微重构您的应用程序才能使其正常工作。
  • Lambda“几秒”没问题 超时时间可以调整到几百秒

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


【解决方案1】:

首先,您可以将 Angular 前端部署到 Amazon S3。您还可以使用 AWS CloudFront 为您的域添加自定义域和来自 Amazon 的免费 SSL 证书。更多详情请参考文章Deploying Angular/React Apps in AWS

如果您不需要在前端立即显示 tge 图像处理结果

对于图像处理后端,您可以使用 AWS API Gateway 和 Lambda 以及 S3。对于这个推荐的流程,您可以使用 API 后端在 Lambda 中获取签名 URL 或 AWS STS(或使用 Cognito 联合身份)来临时访问 Amazon S3 存储桶以将图像从 Angular 应用程序直接上传到 S3。有关这方面的更多详细信息,请参阅文章Upload files Securely to AWS S3 Directly from Browser

注意:AWS 最近发布了一个名为 AWS Amplify 的 JavaScript 库,以简化上述任务的实施。

将图像上传到 S3 后,您可以设置事件驱动的工作流程,方法是使用 Amazon S3 触发器调用 Lambda 函数来执行图像处理并将过程图像保存回 S3(如果您需要存储结果)。

如果您需要立即显示结果

仍然使用 tge 以前的方法从前端上传到 S3,然后调用 API Gateway Lambda 函数传递 S3 中的文件路径来处理图像。

要了解使用 AWS 无服务器技术连接前端和后端的详细信息,请参阅文章 Full Stack Serverless Web Apps with AWS

附带说明一下,您应该能够在不使用 AWS EC2 的情况下使用 AWS Lambda 实现所需的功能。

【讨论】:

  • 感谢您的精彩回答!你能告诉我你推荐哪一个吗?如果是完整的 Lambda,还是与 Lambda 和 EC2 混合使用?
  • 图像处理的频率如何?平均需要多少时间?
猜你喜欢
  • 2019-04-17
  • 1970-01-01
  • 2016-07-03
  • 1970-01-01
  • 2019-11-01
  • 2017-12-14
  • 1970-01-01
  • 1970-01-01
  • 2015-10-12
相关资源
最近更新 更多