对不起这样的问题..但我在这里有点迷失....
我有一个应用程序,它包含一个Angular4作为前端,Java应用程序作为后端。 但是我计划在看到亚马逊的视频后使用AWS Lambda。我们很感兴趣。
问题在于我不知道如何从AWS中获得最佳效果。
我的Java应用程序处理一些图像非常耗时(需要几秒钟)。
但我不确定我是否可以在Lambda中部署我的所有应用程序,或者是否想要使用EC2服务器,然后使用lambda中的图像处理的特定任务。有人可以在这里说清楚吗?
此外,前端应用程序可以部署在lambda中,或者lambda仅用于特定任务?
编辑: 申请流程将是: 角度应用程序中的用户上传图像,图像以Java形式传送到后端服务器并存储在(可能)AWS桶中。然后带有imagemagick的Java应用程序处理图像并将结果存储在(也许) )另一个桶。
所以问题是我什么时候需要使用Lambda?只是为了转换图像或者是否有完整的后端(可能是前端)应用程序?<
我问,因为我找不到足够的信息...
答案 0 :(得分:2)
首先,您可以将Angular前端部署到Amazon S3。您还可以使用AWS CloudFront通过您的域的Amazon Certificate Manager从Amazon添加自定义域和免费SSL证书。有关详细信息,请参阅文章Deploying Angular/React Apps in AWS。
如果您不需要在前端立即显示tge图像处理结果
对于图像处理后端,您可以使用AWS API Gateway和Lambda以及S3。对于此推荐流程,您可以使用API后端获取Lambda中的签名URL或AWS STS(或使用Cognito联合身份)以获得对Amazon S3 Bucket的临时访问,以将图像从Angular App直接上载到S3。有关详细信息,请参阅文章Upload files Securely to AWS S3 Directly from Browser。
注意:AWS最近发布了一个名为AWS Amplify的JavaScript库,以简化上述任务的实施。
将图像上传到S3后,您可以设置事件驱动的工作流,方法是使用Amazon S3触发器调用Lambda函数执行图像处理,并将过程图像保存回S3(如果需要存储结果)。 / p>
如果您需要立即显示结果
仍然使用tge之前的方法从前端上传到S3,然后调用API网关Lambda函数,在S3中传递文件路径来处理图像。
要了解使用AWS无服务器技术连接前端和后端的详细信息,请参阅文章Full Stack Serverless Web Apps with AWS。
作为旁注,您应该能够在不使用AWS EC2的情况下使用AWS Lambda实现所需的功能。